资讯专栏INFORMATION COLUMN

AWS S3 协议应用场景 对象存储 US3

ernest.wang / 4015人阅读

摘要:可以通过相关配置,直接操控对象存储的中的文件,进行上传,下载,删除等操作。目前后端协议只支持的分片,如果分片大小不对,会返回错误。

AWS S3 协议应用场景

本篇目录

文件浏览器工具网络文件系统 S3FSgoofys基于 US3 的 FTP 服务s3cmdrclone

文件浏览器工具

功能说明

S3 Browser 是一种易于使用和强大的 Amazon S3 免费客户端。 它提供了一个简单的 Web 服务接口,可用于存储和检索任意数量的数据,无论任何时候从任何地方。 可以通过相关配置,直接操控 US3 对象存储的 Bucket 中的文件,进行上传,下载,删除等操作。

安装和使用

适用的操作系统:Windows

安装步骤

​ 1.下载安装包

下载地址: http://s3browser.com

​ 2.安装程序

进入下载页面,点击 Download S3 Browser,按照提示,进行安装即可。

使用方法

​ 1.增加用户

点击左上角 Accounts 按钮,在下拉框中,点击 Add new account

在 Add new account 页面中,需要填写的项描述如下:

Account Name: 账户名称,用户自定义。

Account Type: 账户类型,选择 S3 Compatible Storage

REST Endpoint: 固定域名,填写参考支持 AWS S3 协议说明。比如:s3-cn-bj.ufileos.com

Signature Version: 签名版本,选择 Signature V4。

Access Key ID: Api 公钥,或者 Token。具体获取请参考 S3 的 AccessKeyID 和 SecretAccessKey 说明

Secret Access Key: API 私钥。具体获取请参考 S3 的 AccessKeyID 和 SecretAccessKey 说明

Encrypt Access Keys with a passward: 请勿勾选。

Use secure transfer(SSL/TSL): 目前仅中国-北京二,中国-香港,越南-胡志明,韩国-首尔,巴西-圣保罗,美国-洛杉矶,美国-华盛顿地域支持 HTTPS,其他区域请勿勾选。

具体配置填写如下:

img

点击左下角的Advanced S3-compatible storage settings配置签名版本以及URL风格

img

修改成功点击Close 关闭当前设置,点击Add new account 保存配置,则成功创建用户。

​ 2.对象操作

控制台功能说明

img

特别说明:目前分片大小只支持 8M 具体配置如下: 1.点击上方工具栏 Tools,在下拉列表中选择 Options,选择 General,在弹出页面中,设置 Enable multipart uploads with size (in megabytes) 为 8,如下图所示:

img

常见问题1.上传文件超过78G,报错400.显示分片大小为16MB问题原因:

​ s3分片数限制为1万条,设置分片为8M是,只能满足78G左右以下文件的上传,如果文件大小超过78G,会自动调整分片大小,保证分片数小于1万条。目前us3后端s3协议只支持8M的分片,如果分片大小不对,会返回400错误。

解决方案:使用内测版us3browser工具进行上传(s3协议),有需要使用,请联系技术支持获取使用权限使用us3cli工具进行上传(us3协议)。使用方式参考 [us3cli 工具简介](

网络文件系统 S3FS

功能说明

s3fs 工具支持将 Bucket 挂载到本地,像使用本地文件系统一样直接操作对象存储中的对象。

安装和使用

适用的操作系统 Linux、MacOS

适用s3fs版本:v1.83及以上

安装步骤

MacOS 环境

brew cask install osxfuse  
brew install s3fs

RHEL 和 CentOS 7 或更新版本通过 EPEL:

sudo yum install epel-release  
sudo yum install s3fs-fuse

Debian 9 和 Ubuntu 16.04 或更新版本

sudo apt-get install s3fs

CentOS 6 及其以下版本

需要编译 s3fs ,并且安装该程序

获取源码

首先,您需要从 上将源码下载到指定目录,以 /data/s3fs 为例:

1. cd /data  
2. mkdir s3fs  
3. cd s3fs  
4. wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.83.zip
安装依赖项

CentOS 系统下安装依赖软件:

  sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel    
  fuse-devel make openssl-devel fuse unzip
编译和安装 s3fs

进入安装目录,执行如下命令进行编译和安装:

1. cd /data/s3fs  
2. unzip v1.83.zip  
3. cd s3fs-fuse-1.83/  
4. ./autogen.sh  
5. ./configure  
6. make  
7. sudo make install  
8. s3fs --version #查看 s3fs版本号

可以查看 s3fs 的版本号,到此,s3fs 已经安装成功。

备注: 在执行第五步,./configure 的过程中,可能会遇到以下的问题。汇总为:

报错: configure: error: Package requirements (fuse >= 2.8.4 libcurl >= 7.0 libxml-2.0 >= 2.6 ) were not met:

原因: fuse 版本过低,此时,您需要手动安装 fuse 2.8.4 及以上版本,安装命令示例如下:

yum -y remove fuse-devel #卸载当前版本的 fuse

wget https://.com/libfuse/libfuse/releases/download/fuse_2_9_4/fuse-2.9.4.tar.gz

tar -zxvf fuse-2.9.4.tar.gz

cd fuse-2.9.4

./configure

make

make install

export

PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/:/usr/local/lib/pkgconfig

modprobe fuse #挂载 fuse 内核模块

echo "/usr/local/lib" >> /etc/ld.so.conf

ldconfig #更新动态链接库

pkg-config --modversion fuse #查看 fuse 版本号,当看到 “2.9.4” 时,表示 fuse 2.9.4 安装成功

s3fs 使用方法配置密钥文件

${HOME}/ 目录中创建 .passwd-s3fs 文件。文件格式为 [API 公钥:API 秘钥]

公私钥获取方式具体请参考获取请参考 S3 的 AccessKeyID 和 SecretAccessKey 说明

例如:

 [root@10-9-42-233 s3fs-fuse-1.83]# cat ~/.passwd-s3fs
 AKdDhQD4Nfyrr9nGPJ+d0iFmJGwQlgBTwxxxxxxxxxxxx:7+LPnkPdPWhX2AJ+p/B1XVFi8bbbbbbbbbbbbbbbbb

将文件设置读写权限。

 chmod 600 ${HOME}/.passwd-s3fs
执行挂载操作

操作指令解释:

建立 US3 挂载文件路径 ${LocalMountPath}

获取已创建的存储空间(Bucket)名称 ${UFileBucketName}

注意:空间名称不带域名后缀,比如 US3 空间名称显示为test.cn-bj.ufileos.com,则${UFileBucketName}=test

根据 US3 存储空间所在地域,本地服务器是否在 UCloud 内网,参考支持 AWS S3 协议说明

执行命令。

参数说明如下:

s3fs ${UFileBucketName} ${LocalFilePath}  
-o url={UFileS3URl} -o passwd_file=~/.passwd-s3fs  
-o dbglevel=info  
-o curldbg,use_path_request_style,allow_other  
-o retries=1 //错误重试次数  
-o multipart_size="8" //分片上传的大小为 8MB,目前仅支持该值 -o
multireq_max="8" //当上传的文件大于 8MB 是采用分片上传,目前UFile 的 S3
接入层不允许 PUT 单个文件超过 8MB,所以该值建议必填  
-f //表示前台执行,后台执行则省略  
-o parallel_count="32" //并行操作数,可以提高分片并发操作,建议不要超过 128

示例:

s3fs s3fs-test /data/vs3fs -o url=http://internal.s3-cn-bj.ufileos.com -o passwd_file=~/.passwd-s3fs -o dbglevel=info -o curldbg,use_path_request_style,allow_other -o retries=1 -o multipart_size="8" -o multireq_max="8" -o parallel_count="32"

挂载效果

执行 df -h 指令,可以看到 s3fs 程序的运行。效果如下:

img

此时,可以看到 /data/vs3fs 目录下的文件和指定 bucket 的文件,保持一致。 也可以通过 tree 执行,查看文件结构。安装指令:yum install -y tree 效果如下:

img

文件上传和下载

挂载 US3 存储空间和后,可以像使用本地文件夹一样使用 US3 存储空间。

拷贝文件到 ${LocalMountPath} ,即是上传文件。将文件从 ${LocalMountPath} 拷贝到其他路径,即下载文件。

注意:

路径不符合 Linux 文件路径规范的路径,可以在 US3 管理控制台看到,但不会在 Fuse 挂载的 ${LocalMountPath} 下显示。Fuse 使用枚举文件清单会比较缓慢,建议直接使用指定到具体文件的命令,如 vim、cp、rm 指定具体文件。删除文件

将文件从 ${LocalMountPath} 删除掉,则 US3 存储空间中,该文件也被删除掉。

卸载US3存储空间
sudo umount ${LocalMountPath}
性能数据

写入吞吐量40MB/s左右 读取吞吐量能达到166 MB/s(跟并发量相关)

goofys

功能说明

goofys 工具同 s3fs, 也支持将 Bucket 挂载到本地,像使用本地文件系统一样直接操作对象存储中的对象。 性能方面比 s3fs 更优.

安装与使用

适用的操作系统:Linux,MacOS

使用步骤

下载可执行文件:

Mac X86-64 Linux X86-64

使用如下命令解压到指定目录:

tar -xzvf goofys-0.21.1.tar.gz

默认在 $HOME/.aws/credentials 文件里面配置 bucket 的公私钥,格式如下:

[default]
aws_access_key_id = TOKEN_*****9206d
aws_secret_access_key = 93614*******b1dc40

执行挂载命令 ./goofys --endpoint your_ufile_endpoint your_bucket your_local_mount_dir, 例如:

./goofys  --endpoint http://internal.s3-cn-bj.ufileos.com/suning2 ./mount_test:

挂载效果如图:

img

测试挂载是否成功, 可以拷贝一个本地文件到 mount_test 目录, 看是否上传到 US3。

其它操作(删除,上传,获取,卸载)

同 s3fs, 可参考上面的 s3fs 操作

性能数据

4核8G 的 UHost 虚拟机, 上传 500MB 以上的文件, 平均速度可达140MB/s

基于 US3 的 FTP 服务

功能说明

对象存储支持通过 FTP 协议直接操作 Bucket 中的对象和目录,包括上传文件、下载文件、删除文件(不支持进入文件夹)。

安装和使用

适用的操作系统:Linux

安装步骤搭建环境

使用 s3fs 工具将 Bucket 挂载到本地。具体安装方式步骤参考基于 S3FS、US3 搭建网络文件系统的内容。

安装依赖项

先检查下本地是否有 FTP 服务,执行命令 rpm -qa | grep vsftpd,如果显示未安装,则执行以下命令,安装 FTP。

运行以下命令安装 vsftpd。

yum install -y vsftpd
开启本地 fpd 服务

执行以下命令,开启 ftp 服务。

service vsftpd start
S3FS 使用方法添加账户

运行以下命令创建 ftptest 用户,并且设置指定目录。

useradd ${username} -d {SpecifiedDirectory}

(删除用户命令:sudo userdel -r newuser)

运行以下命令修改 ftptest 用户密码。

passwd ${username}

客户端使用

此时,您可以在外部任何一台机器上连接该服务器,输入您的用户名和密码,来管理 bucket 的文件

ftp ${ftp_server_ip}

s3cmd

功能说明

s3cmd是一个免费的命令行工具,用于使用S3协议上传、检索和管理数据,它最适合熟悉命令行程序的用户,广泛用于批处理脚本和自动备份。

安装和使用

适用的操作系统:Linux、MacOS、Windows

安装步骤
1.下载安装包
https://s3tools.org/download ,这里以目前最新版本2.1.0为例 
2.解压安装包
tar xzvf s3cmd-2.1.0.tar.gz
3.移动路径
mv s3cmd-2.1.0 /usr/local/s3cmd
4.创建软连接
ln -s /usr/local/s3cmd/s3cmd /usr/bin/s3cmd (权限不足可以使用sudo)
5.执行配置命令,填写必要信息(直接跳过也可以,可以放在下一步手动填写)
s3cmd --configure
6.填写配置
vim ~/.s3cfg
打开当前配置,填写以下参数
access_key = "TOKEN公钥/API公钥"      
secret_key = "TOKEN私钥/API私钥"     
host_base = "s3协议域名,例如: s3-cn-bj.ufileos.com"
host_bucket = "请求风格,例如: %(bucket)s.s3-cn-bj.ufileos.com"
multipart_chunk_size_mb = 8 "us3 支持的s3协议分片大小为8M,所以这里只能填8"

access_key: 参考Token公钥/API公钥

secret_key: 参考 Token私钥/API私钥

host_base: 参考 s3协议域名

示例配置项
[default]
access_key = "TOKEN_xxxxxxxxx"
access_token = 
add_encoding_exts = 
add_headers = 
bucket_location = US 
check_ssl_certificate = True
check_ssl_hostname = True
connection_pooling = True
content_disposition = 
content_type = 
default_mime_type = binary/octet-stream
delay_updates = False
delete_after = False
delete_after_fetch = False
delete_removed = False
dry_run = False
enable_multipart = True
encrypt = False
expiry_date = 
expiry_days = 
expiry_prefix = 
follow_symlinks = False
force = False
get_continue = False
gpg_passphrase = 
guess_mime_type = True
host_base = s3-cn-bj.ufileos.com
host_bucket = %(bucket)s.s3-cn-bj.ufileos.com
human_readable_sizes = False
invalidate_default_index_on_cf = False
invalidate_default_index_root_on_cf = True
invalidate_on_cf = False
kms_key = 
limit = -1
limitrate = 0
list_md5 = False
log_target_prefix = 
long_listing = False
max_delete = -1
mime_type = 
multipart_chunk_size_mb = 8
multipart_max_chunks = 10000
preserve_attrs = True
progress_meter = True
proxy_host =  
proxy_port = 80 
public_url_use_https = False
put_continue = False
recursive = False
recv_chunk = 65536
reduced_redundancy = False
requester_pays = False
restore_days = 1
restore_priority = Standard
secret_key = "xxxxxxxxxxxxxxxxxxx" 
send_chunk = 65536
server_side_encryption = False
signature_v2 = False
signurl_use_https = False
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
stats = False
stop_on_error = False
storage_class = 
throttle_max = 100
upload_id = 
urlencoding_mode = normal
use_http_expect = False
use_https = False
use_mime_magic = True
verbosity = WARNING
website_index = index.html
使用方法1.上传文件
s3cmd put test.txt s3://bucket1
2.删除文件
s3cmd del s3://bucket1/test.txt
3.下载文件
s3cmd get s3://bucket1/test.txt
4.拷贝文件
s3cmd cp s3://bucket1/test.txt s3://bucket2/test.txt
其他常用操作
1.上传文件夹
s3cmd put -r ./dir s3://bucket1/dir1
2.下载文件夹
s3cmd get -r s3://bucket1/dir1 ./dir1
3.删除文件夹
s3cmd del s3://bucket1/dir1
4.列取bucket列表
s3cmd ls
5.列取文件列表
s3cmd ls s3://bucket1
6.归档文件取回
s3cmd restore s3://bucket1

rclone

功能说明

rclone是一个命令行程序,用于管理云存储上的文件,支持s3协议

安装和使用安装步骤
curl https://rclone.org/install.sh | sudo bash
//参考 https://rclone.org/install/
配置
rclone config
配置参考
[s3]           //这里可以填写s3,ucloud等自定义名,作为命令前缀
type = s3
provider = Other
env_auth = false
access_key_id = xxxxxxxx                 
secret_access_key = xxxxxxxxxxx          
endpoint = http://s3-cn-bj.ufileos.com   //参考
location_constraint = cn-bj
acl = private
bucket_acl = private // public/private
chunk_size = 8M                          //目前只支持8M分片

access_key_id: 参考Token公钥/API公钥

secret_access_key: 参考 Token私钥/API私钥

endpoint: 参考 s3协议域名

使用方法

说明: 以下命令前缀(配置内的中括号内容)以remote为例,使用过程中需要自行修改

1.查看所有bucket
rclone lsd remote:
2.列取文件列表
rclone ls remote:bucket
3.上传文件
rclone copy ./test.txt remote:bucket
4.删除文件
rclone delete remote:bucket/test.txt

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127044.html

相关文章

  • 概览 对象存储 US3

    摘要:概览概览产品简介产品概述功能概览产品优势使用限制存储类型地域和域名计量计费产品价格计费规则欠费处理计费案例快速上手开通服务开始使用控制台指南存储空间日志管理文件管理生命周期静态网站托管域名管理镜像回源跨区域复制跨域设置数据分析防盗链统计报 概览产品简介产品概述功能概览产品优势使用限制存储类型地域和域名计量计费产品价格计费规则欠费处理计费案例快速上手开通 US3 服务开始使用 US3控制台指南...

    ernest.wang 评论0 收藏2651
  • v1.7.0 对象存储 US3

    v1.7.0修复了前缀自动发现式列取时,校验阶段仅校验顶层前缀的bug在不勾选前缀自动发现时,会同步源端的空目录到目的端支持了七牛专有云的endpointv1.6.1修复了在专有云上无法创建endpoint的bug修复了使用前缀自动发现功能时可能会卡住的bug修复了url列表模式的endpoint可能无法创建的bugv1.6.0优化了数据的统计方式修复了在使用s3接口拉取列表时,返回结果中next...

    ernest.wang 评论0 收藏1888
  • 海纳百川·智慧不凡丨UCloud对象存储UFile品牌升级US3

    摘要:对象存储产品正式升级为,采用新一代自研存储引擎,为更多用户提供安全可靠极致性能成本可控便捷易用的对象存储服务。稳定可用性提升倍,带宽提升倍,提升倍,归档存储型对象存储价格降低。UCloud对象存储产品UFile正式升级为US3,采用新一代自研存储引擎,为更多用户提供安全可靠、极致性能、成本可控、便捷易用的对象存储服务。US3稳定可用性提升5倍,带宽提升2倍,IOPS提升10倍,归档存储型对象...

    Tecode 评论0 收藏0
  • 跨云迁移过程中的数据同步及一致性校验实践(一)

    摘要:通过对一些客户的跨云迁移过程进行总结,发现普遍存在的挑战有三点数据完整性和一致性挑战。简而言之,跨云迁移过程中的数据一致性主要就集中在存量数据的迁移如何保证一致。前言随着互联网业务发展对容灾以及对访问加速、多供应商成本控制等需求的产生,互联网公司的多云部署和跨云迁移逐渐成为刚需,而在此过程中,最困扰运维和研发人员的就是数据的迁移和同步。俗语说 上屋搬下屋,搬洒一箩谷 ,在业务的迁移过程中一旦...

    Tecode 评论0 收藏0
  • 数据迁移方案 对象存储 US3

    摘要:用户可通过数据迁移的方式,将第三方的存储集群数据迁移至的存储空间中,充分利用对象存储按需收费,无须购买额外硬件资源的优势,对数据进行归档,以实现成本最优。 数据迁移方案本篇目录背景US3 镜像回源功能US3 数据迁移工具背景对象存储具有容量大、成本低、高扩展性以及高可靠性等优势,面对增量数据导致的存储容量瓶颈、成本增加等问题。用户可通过数据迁移的方式,将第三方的存储集群数据迁移至 US3 的...

    ernest.wang 评论0 收藏3105
  • 迁移工具(历史版本) 对象存储 US3

    摘要:迁移工具历史版本迁移工具历史版本迁移工具历史版本本篇目录介绍介绍安装步骤安装步骤介绍介绍介绍是对象存储提供的一款将数据迁移至存储空间的工具。 迁移工具(历史版本)本篇目录介绍安装步骤介绍ufile-import 是对象存储 US3 提供的一款将数据迁移至 US3 存储空间(Bucket) 的工具。您可以将 ufile-import 部署在本地服务或者云主机上,轻松将您其他云存储的数据迁移到 ...

    ernest.wang 评论0 收藏2718

发表评论

0条评论

ernest.wang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<