对象存储s3cmd使用手册

#s3cmd 是用于创建S3桶,上传,检索和管理数据到对象存储命令行实用程序。 通常用于对象存储服务桶和对象数据管理,包括创建桶、上传、检索、删除及本地与对象存储服务间数据同步等。

一、安装

yum install s3cmd

apt-get install s3cmd

二、使用

1. 配置方法

  • 更改$HOME/.s3cfg配置文件
  • s3cmd --configure
  • s3cmd -c FILEFILE为已完成配置的文件

推荐更改项:
access_key = <your access key id>
secret_key = <your access key secret>
host_base = host:port
host_bucket = %(bucket)s.host
use_https = False #Default is True

2. 操作

  1. 创建Bucket,且Bucket名称是唯一的。
    s3cmd mb s3://BUCKET

s3cmd mb s3://my_bucket_name

  1. 删除空Bucket
    s3cmd rb s3://BUCKET

s3cmd rb s3://my_bucket_name

  1. 列举Object或Bucket
    s3cmd ls [s3://BUCKET[/PREFIX]]

s3cmd ls s3://my_bucket_name
s3cmd ls s3://my_bucket_name/file.txt

  1. 列举所有Buckets
    s3cmd ls

  2. 上传Object到某个Bucket
    s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]

上传单个文件
s3cmd put file.txt s3://my_bucket_name/file.txt
批量上传文件(上传当前目录下的所有文件)
s3cmd put ./* s3://my_bucket_name/
递归上传文件(递归上传当前目录下的所有文件)
s3cmd put ./* s3://my_bucket_name/ -r

注:当文件大于15MB时,会采用分段上传,可通过与--multipart-chunk-size-mb=SIZE联用,设置上传块大小。也可以与--disable-multipart联用取消分段上传

  1. 从Bucket下载Object
    s3cmd get s3://BUCKET/OBJECT LOCAL_FILE

下载单个文件
s3cmd get s3://my_bucket_name/file.txt file.txt
批量下载(下载到当前目录)
s3cmd get s3://my-bucket-name/* ./

  1. 删除Object
    s3cmd del s3://BUCKET/OBJECTs3cmd rm s3://BUCKET/OBJECT

s3cmd del s3://my_bucket_name/file.txt
s3cmd rm s3://my_bucket_name/file.txt
rmdel的别名

  1. 从Glacier存储类中恢复文件
    s3cmd restore s3://BUCKET/OBJECT

s3cmd restore s3://my_bucket_name/file.txt

  1. 同步目录树(同步操作是要进行MD5校验的,只有当文件不同时,才会被传输)
    s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] 或 s3://BUCKET[/PREFIX] LOCAL_DIR

同步当前目录下的所有文件:s3cmd sync ./ s3://my_bucket_name/

  1. 获取对应的Bucket所占用的空间大小
    s3cmd du [s3://BUCKET[/PREFIX]]

s3cmd du s3://my_bucket_name得到:
179813669 19 objects s3://my_bucket_name/
s3cmd du -H s3://my_bucket_name得到:
171M 19 objects s3://test_bucket01/

  1. 获取Bucket或Object的版本信息
    s3cmd info s3://BUCKET[/OBJECT]

s3cmd info s3://my_bucket_name
s3cmd info s3://my_bucket_name/file.txt

  1. 复制Object(从BUCKET1/OBJECT1复制到BUCKET2[/OBJECT2])
    s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]

s3cmd cp s3://my_bucket_name1/file1.txt s3://my_bucket_name2/file2.txt

  1. 修改Object元数据
    s3cmd modify s3://BUCKET1/OBJECT

修改example.jpg的 --mime-typeimge/jpeg
s3cmd modify --mime-type="image/jpeg" s3://my_bucket01/example.jpg

  1. 移动Object
    s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]

s3cmd mv s3://my_bucket_name1/file1.txt s3://my_bucket_name2/file2.txt

  1. 修改Bucket或对象的ACL
    s3cmd setacl s3://BUCKET[/OBJECT]

Bucket和Bucket所有Object权限私有s3cmd setacl s3://my_bucket_name -acl-private --recursive
Bucket权限私有Object权限不变s3cmd setacl s3://my_bucket_name -acl-private

  1. 修改Bucket策略
    s3cmd setpolicy FILE s3://BUCKET

本地策略policy.json

 

{

"Version": "2012-10-17",

"Statement": [

{

"Sid": "AddPerm",

"Effect": "Allow",

"Principal": "*",

"Action": [

"s3:GetObject"

],

"Resource": [

"arn:aws:s3:::volpublic/*"

]}]}

 

设置my_bucket_name的Bucket策略s3cmd setpolicy policy.json s3://my_bucket_name

  1. 删除Bucket策略
    s3cmd delpolicy s3://BUCKET

  2. 修改Bucket CORS
    s3cmd setcors FILE s3://BUCKET

  3. 删除Bucket CORS
    s3cmd delcors s3://BUCKET

  4. 修改Bucket请求者付费策略
    s3cmd payer s3://BUCKET

修改为申请方付款存储桶
s3cmd payer s3://BUCKET --requester-pays
修改为存储桶拥有者付款存储桶
s3cmd payer s3://BUCKET

  1. 显示分段上传
    s3cmd multipart s3://BUCKET [Id]

  2. 放弃分段上传
    s3cmd abortmp s3://BUCKET/OBJECT Id

  3. 列出分段上传
    s3cmd listmp s3://BUCKET/OBJECT Id

  4. 打开/关闭Bucket的access logging
    s3cmd accesslog s3://BUCKET

  5. 使用secret key生成签名
    s3cmd sign STRING-TO-SIGN

secret key"sfdserqwovbnxz2dsc"
s3cmd sign sfdserqwovbnxz2dsc得到:
Signature: G3GtIkpMWFiyd/FLVvZ2z76xC20=

  1. 提供有时间期限的公共访问S3的URL
    s3cmd signurl s3://BUCKET/OBJECT <expiry_epoch|+expiry_offset>

生成1小时后过期的带有签名的url:
s3cmd signurl s3://test_bucket01/example.jpg +3600得到:
http://test_bucket01.ceph40:7480/example.jpg?AWSAccessKeyId=ENECX2I210OUE60CE3LF&Expires=1471258746&Signature=AOHcWQlu0tFPJCKqsE6DUmF8sRU%3D
生成24小时后过期的带有签名的url:
在未来的时间节点1471344144后过期:
s3cmd signurl s3://test_bucket01/example.jpg 1471344144得到:
http://test_bucket01.ceph40:7480/example.jpg?AWSAccessKeyId=ENECX2I210OUE60CE3LF&Expires=1471344144&Signature=4%2FTlQiqvcPu8tfgCjVwjR%2BdwLDI%3D

  1. 修复Bucket中无效的文件名
    s3cmd fixbucket s3://BUCKET[/PREFIX]

  2. 创建Bucket Website
    s3cmd ws-create s3://BUCKET

  3. 删除Bucket Website
    s3cmd ws-delete s3://BUCKET

  4. 列出Bucket Website信息
    s3cmd ws-info s3://BUCKET

  5. 设置或删除Bucket过期规则
    s3cmd expire s3://BUCKET

  6. 上传Bucket的生命周期策略
    s3cmd setlifecycle FILE s3://BUCKET

  7. 移除Bucket的生命周期策略
    s3cmd dellifecycle s3://BUCKET

3. 选项

  1. -h, -help:查找帮助
  2. --configure:配置工具
  3. -c FILE, --config=FILE:配置文件名,默认为$HOME/.s3cfg
  4. --dump-config:解析配置文件后转换为当前的配置
  5. --access_key=ACCESS_KEY
    --secret_key=SECRET_KEY:设置Access Key和Secret Key
  6. -e, --encrypt:在上传前加密文件
  7. --no-encrypt:不加密文件
  8. -f, --force:强制覆盖和其他危险性操作
  9. --continue:继续获取分段下载文件(只适用于get操作)
  10. --continue-put:继续上传部分分段上传文件或分段上传部分
  11. --upload-id=UPLOAD_ID:当你想继续现有的上传,而使用的分段上传的UploadId,可以使用s3cmd multipart [URI]命令查看UploadId
  12. --skip-existing:跳过目的地址已经存在的文件(只适用于getsync操作)
  13. -r, --recursive:回归上传,下载或者移除。
  14. --check-md5:用于同步文件,比较文件时检验MD5值,默认开启。
  15. --no-check-md5:同步文件,关闭 MD5检验,只进行大小比较,加快了转化速度,但是可能失去一些更改的文件。
  16. -P, --acl-public:允许资源匿名下载(对于Object),列表(对于Bucket)
  17. --acl-private:允许拥有者拥有对象的所有权限(默认)
  18. --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID:通过账户的邮箱或者user ID授予资源的权限,权限包含read, write, read_acp, write_acp, full_control

admin账户授予对my_bucket01资源full_control权限
s3cmd setacl s3://my_bucket01 --acl-grant=full_control:admin

  1. --acl-revoke=PERMISSION:USER_CANONICAL_ID:取消账户的权限,权限包含read, write, read_acp, wirte_acp,用法同选项18
  2. -D NUM, --restore-days=NUM:存储文件可用的时长(单位:天),只能与restore命令一起使用
  3. --delete-removed:删除远程文件,并不与本地文件关联,与sync联用
  4. --no-delete-removed:不删除远程对象
  5. --delete-after:有新资源上传后删除与sync联用
  6. --max-delete=NUM:删除不超过NUM个文件与delsync联用
  7. --add-destination=ADDITIONAL_DESTINATIONS:用于并发上传的其他地址
  8. --delete-after-fetch:在获取远程对象后,将远程对象删除,与get, sync联用
  9. -p, --preserve:保留文件系统属性(模式,所有权,时间戳),sync命令默认包含此命令
  10. --no-preserve:不保留文件系统属性
  11. --exclude=GLOB:文件名和匹配GLOB路径将同步被排除
  12. --exclude-from=FILE:从FILE中读取用于排除的GLOBs
  13. --rexclude=REGEXP:在sync时,通过正则表达式排除文件名和路径
  14. --rexclude-from=FILE:从FILE中读取用于排除的正则表达式
  15. --include=GLOB:即便先前已经排除被排除了,也能通过匹配的GLOB的文件名和路径包含进来
  16. --include-from=FILE:通过读取FILE的方式获取用于包含的GLOBs
  17. --rinclude=REGEXP:通过正则表达式获取包含的内容
  18. --rinclude-from=FILE:通过读取FILE获取用于包含的正则表达式
  19. --files-from=FILE:从FILE读取源文件名的列表
  20. --region=REGION, --bucket-location=REGION:设置创建Bucket的区域
  21. --reduced-redundancy, --rr:存储对象设置存储类型为低冗余存储,与put, cp, mv联用
  22. --no-reduced-redundancy, --no-rr:存储对象设置为非低冗余存储,与put, cp, mv联用
  23. --storage-class=CLASS:设置对象的存储类型(STANDARD, STANDARD_IA, 或 REDUCED_REDUNDANCY),与put, cp, mv联用
  24. --access-logging-target-prefix=LOG_TARGET_PREFIX:访问日志的目标前缀为S3 URI:http://acs.amazonaws.com/groups/s3/LogDelivery,与cfmodify, accesslog命令联用
  25. --no-access-logging:关闭访问日志,与cfmodify, accesslog命令联用
  26. --default-mime-type=DEFAULT_MIME_TYPE:存储对象默认是MIME类型,应用默认是binary/octet-stream类型
  27. -M, --guess-mime-type:通过文件扩展名猜测文件的MIME类型
  28. --no-guess-mime-type:使用文件的默认类型
  29. --no-mime-magic:不使用mime magic来猜测MIME类型
  30. -m MIME/TYPE, --mime-type=MIME/TYPE:强制使用设置的MIME类型,覆盖--default-mime-type--guess-mime-type类型
  31. --add-header=NAME:VALUE:增加HTTP头请求,可以使用多次。比如,使用这个选项可以设置Expires或者Cache-Control头(或者两者都可以)
  32. --remove-header=NAME:移除已有的HTTP
  33. --server-side-encryption:上传对象时,采用服务端加密,与put, sync, cp, modify联用
  34. --server-side-encryption-kms-id=KMS_KEY:上传对象时,指定 key id给服务端,服务端通过KWS进行加密,与put, sync, cp, modify联用
  35. --encoding=ENCODING:覆盖自动检测终端和文件系统编码(字符集),自动检测终端:UTF-8
  36. --disable-multipart:取消文件大小比--multipart-chunk-size-mb大的分段上传,即取消分段上传
  37. --multipart-chunk-size-mb=SIZE:分段上传块的大小,大于SIZE(单位:M)的部分会自动采用多线程上传,默认大小是15MB,块大小:最小5MB,最大5GB
  38. --list-md5:在Bucket列表中包含MD5校验,只适用于ls命令
  39. -H, --human-readable-sizes:打印出可读的形式(例如,1234显示为1kB
  40. --ws-index=WEBSITE_INDEXindex-document的名称,只适用于ws-create命令
  41. --ws-error=WEBSITE_ERRORerror-document的名称,只适用于ws-create命令
  42. --expiry-date=EXPIRY_DATE:标示到期规则何时生效,与expire联用
  43. --expiry-days=EXPIRY_DAYS:标示对象创建后,到期规则生效的天数
  44. --expiry-prefix=EXPIRY_PREFIX:用来指定一个或多个对象适用该到期规则,只适用于expire命令
  45. --progress:显示进度表(在TTY上默认显示)
  46. --no-progress:不显示进度(在non-TTY上默认不显示)
  47. --enable:启用已有的CloudFront ,只适用于cfmodify命令
  48. --disable:关闭已有的CloudFront ,只适用于cfmodify命令
  49. --cf-invalidate:上传文件CloudFront服务不可用
  50. --cf-invalidate-default-index:当使用自定义的原始文件和S3的静态网站,默认的index文件无效。
  51. --cf-no-invalidate-default-index-root:当使用自定义的原始文件和S3的静态网站,默认的index文件路径仍然生效。
  52. --cf-add-cname=CNAME:增加已有的CNAMECloudFront,只适用于cfcreate, cfmodify命令
  53. --cf-remove-cname=CNAME:从CloudFront移除CNAME,只适用于cfmodify命令
  54. --cf-comment=COMMENT:对于一个给定的CloudFront设置评论
  55. --cf-default-root-object=DEFAULT_ROOT_OBJECT:当URL中为指定对象时,设置默认的root对象用于返回。使用相关路径。比如,用default/index.html代替/default/index.html或者s3://bucket/default/index.html,只适用于cfcreate, cfmodify命令
  56. -v, --verbose:输出启用显示详细信息
  57. -d, --debug:启用调试输出,会列出调试信息
  58. --version:显示s3cmd版本信息
  59. -F, --follow-symlinks:当他们是规则文件时,跟踪链接
  60. --cache-file=FILE:包含本地源的MD5值缓存文件
  61. -q, --quiet:是标准输出时,不输出信息
  62. --ca-certs=CA_CERTS_FILESSL CA证书的路径
  63. --check-certificate:查看SSL证书是否有效
  64. --no-check-certificate:不检查SSL证书的有效性
  65. --check-hostname:查看SSL证书的hostname是否有效
  66. --no-check-hostname:不检查SSL证书的hostname的有效性
  67. --signature-v2:使用AWS签名版本2代替最新的签名版本
  68. --limit-rate=LIMITRATE:限制上传或者下载速度(单位:bytes/s),支持k, m后缀
  69. --requester-pays:对于操作 ,设置申请方付款标志
  70. -l, --long-listing:产生长列表,与ls联用
  71. --stop-on-error:如果在传输中出现错误,则停止传输
  72. --content-disposition=CONTENT_DISPOSITION:为签名的URL提供Content-Disposition,例如,"inline; filename=myvideo.mp4"
  73. --content-type=CONTENT_TYPE:为签名的URL提供Content-Type,例如,"video/mp4"
  74. -n, --dry-run:只显示应该怎样上传或下载,但实际上并没有做。仍可以进行S3请求得到Bucket列表等信息,只适用于文件传输命令
  75. -s, --ssl:使用HTTPS连接S3
  76. --no-ssl:不使用HTTPS连接S3
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对象存储S3(Simple Storage Service)是由亚马逊AWS提供的一种云存储服务,它可以帮助用户安全地存储和获取任意量的数据。对象存储S3学习手册可以帮助学习者全面了解并掌握这项云存储服务的使用方法和技巧。 首先,学习手册会介绍对象存储S3的基本概念和核心特性。学习者将会了解S3的存储桶(Bucket)和对象(Object)的概念,以及如何进行数据的上传和下载。此外,手册还会详细介绍S3的数据一致性、存储类别和访问控制等方面的知识,帮助学习者理解和正确使用S3。 其次,学习手册将会介绍S3的高级功能和应用场景。比如,学习者将会了解如何使用S3进行大规模数据迁移和批量操作,以及如何使用S3进行数据备份和归档。学习手册还会介绍S3的跨区域复制功能,帮助学习者理解和应用复制策略,实现数据的高可用性和灾备。 此外,学习手册还会涉及S3的性能优化和最佳实践。学习者将会了解如何利用S3的分块上传和多线程下载功能提高数据传输的效率,以及如何合理地设计存储桶和对象的命名方式,提升系统的可维护性和可扩展性。 最后,学习手册会提供一些实际案例和练习,帮助学习者将理论知识应用到实践中。例如,学习者可以学习如何使用S3实现图片和视频的在线存储和分享,或者如何利用S3构建可靠的数据湖(Data Lake)。 总体而言,对象存储S3学习手册通过系统性的介绍,帮助学习者全面了解和掌握该云存储服务的使用方法和技巧,为他们在云计算和大数据领域的工作和学习提供基础支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

io_py

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值