Amazon S3 Tools: Command Line S3 Client Software and S3 Backup

官方网站

开发语言 python

安装配置参考

安装

pip install s3cmd
# 或
yum install python-s3cmd

推荐版本 2+,2.0.0 版本之前测试过有bug,附录部分有说明。

配置

  1. 通过命令行传递参数配置

    s3cmd --configure \
    --access_key=<access_key> \
    --secret_key=<secret_key> \
    --region=<region> \
    --host=<endpoint> \
    --host-bucket=<endpoint> \
    --no-ssl
    --signature-v2

    s3cmd 2.2.0(最新版),在某些不兼容v4的情况下,需要使用'--signature-v2',否则会发起两次签名重试请求。

  2. 通过配置文件配置

    ~/.s3cfg
    [default]
    access_key = <access_key>
    secret_key = <secret_key>
    bucket_location = <region>
    host_base = <endpoint>
    host_bucket = <endpoint>
    use_https = False
    human_readable_sizes = True
    website_index = index.html
    signature_v2 = True

如果使用的是aws s3,配置可以精简为只有access_key和secret_key

[default]
access_key = <access_key>
secret_key = <secret_key>

用法

1、配置,主要是 Access Key ID 和 Secret Access Key
s3cmd --configure 2、列举所有 Buckets。(bucket 相当于根文件夹)
s3cmd ls 3、创建 bucket,且 bucket 名称是唯一的,不能重复,默认创建的 bucket 是公开的。
s3cmd mb s3://my-bucket-name 4、删除空 bucket
s3cmd rb s3://my-bucket-name 5、列举 Bucket 中的内容
s3cmd ls s3://my-bucket-name 6、上传
s3cmd put file.txt s3://my-bucket-name/file.txt 支持批量上传,直接指定多个文件,如
s3cmd put t.py s3://tccpoc/t.py up.py s3://tccpoc/up.py 如果上传终断,比如ctrl+c,会显示upload-id,按照指示,带上`--upload-id`就可以实现断点上传 7、上传并将权限设置为所有人可读
s3cmd put --acl-public file.txt s3://my-bucket-name/file.txt
--acl-private,也可以是私有 8、批量上传文件
s3cmd put ./* s3://my-bucket-name/ 9、下载文件
s3cmd get s3://my-bucket-name/file.txt file.txt 支持批量下载,直接指定多个文件,如
s3cmd get s3://tccpoc/t.py s3://tccpoc/up.py 如果下载终断,比如ctrl+c,带上参数`--continue`,可以实现断点下载 10、批量下载
s3cmd get s3://my-bucket-name/* ./ 11、删除文件,
s3cmd del s3://my-bucket-name/file.txt 支持批量删除,直接指定多个 bucket 对象,如
s3cmd del s3://my-bucket-name/file.txt s3://my-bucket-name/file2.txt 12、来获得对应的bucket所占用的空间大小
s3cmd du -H s3://my-bucket-name

上传大文件时,使用 --multipart-chunk-size-mb=size 指定的分片大小必须是4的倍数,否则上传会报 400(InvalidPartOrder)

其他常用参数

  --list-md5                 结合list一起使用,打印md5
-H, --human-readable-sizes 人性化文件大小
-v, --verbose 显示详细的输出
-d, --debug 调试信息
--limit-rate=LIMITRATE 限速

文件同步相关

  --exclude=GLOB             通配
--exclude-from=FILE 从文件读取排除列表
--rexclude=REGEXP 正则形式的匹配排除
--rexclude-from=FILE 从文件读取正则形式的匹配排除 --include=GLOB 通配
--include-from=FILE 从文件读取文件列表
--rinclude=REGEXP 正则匹配
--rinclude-from=FILE 从文件读取正则匹配
# 示例
# s3cmd sync --exclude '*' --include 'link*' images/ s3://files
upload: 'images/link.png' -> 's3://files/link.png' [1 of 1]
8094 of 8094 100% in 0s 206.34 kB/s done # s3cmd sync --exclude '*' --include 'link*' s3://files images2
download: 's3://files/link.png' -> 'images2/link.png' [1 of 1]
8094 of 8094 100% in 0s 323.87 kB/s done
Done. Downloaded 8094 bytes in 1.0 seconds, 7.90 kB/s.

ACL

# s3cmd modify s3://files/link.png --acl-private
# s3cmd modify s3://files/link.png --acl-public

生命周期

# 设置文件1天后过期
# s3cmd modify s3://testabc/sqr.py --add-header x-delete-after:1

附录

  1. 2.0.0版本上传大文件时有bug

s3cmd s3命令行工具的更多相关文章

  1. 云存储命令行工具---libs3

    ceph 的客户端有很多,有s3cmd.cloudberryExplorer等,今天介绍另一个libs3 一. 安装 Libs3是RGW s3接口的命令行工具,与s3cmd类似,使用C++生成. 1. ...

  2. windows下的命令行工具babun

    什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...

  3. 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...

  4. 命令行工具aspnet_regiis.exe实现加密和解密web.config

    命令行工具aspnet_regiis.exe,是一个类似于DOS的命令工具,称之为命令解释器.使用命令行工具加密和解密web.config文件中的数据库连接字符串时,只需要简单的语法命令即可. 加密语 ...

  5. nodejs 编写(添加时间戳)命令行工具 timestamp

    Nodejs除了编写服务器端程序还可以编写命令行工具,如gulp.js就是Nodejs编写的. 接下来我们来实现一个添加时间戳的命令: $ timestamp action https://www.n ...

  6. 如何用Node编写命令行工具

    0. 命令行工具 当全局安装模块之后,我们可以在控制台下执行指定的命令来运行操作,如果npm一样.我把这样的模块称之为命令行工具模块(如理解有偏颇,欢迎指正) 1.用Node编写命令行工具 在Node ...

  7. Orchard中的命令行工具

    在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户.创建博客.生成代码.配置网站.打包模块等.并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类 ...

  8. Linux 性能监控之命令行工具

    引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...

  9. 命令行工具解析Crash文件,dSYM文件进行符号化

    备份   文/爱掏蜂窝的熊(简书作者)原文链接:http://www.jianshu.com/p/0b6f5148dab8著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 序 在日常开发 ...

随机推荐

  1. SpringBoot系列之缓存使用教程

    介绍SpringBoot项目中使用缓存,之前先介绍一下Spring的缓存抽象和JSR107,本博客是我在学习尚硅谷视频和参考其它博客之后做的笔记,仅供学习参考 @ 目录 一.Spring的缓存抽象 1 ...

  2. java 初学者 第一阶段作业编程总结及心得体会

    0.前言 第一阶段java作业分为3次. 第一次作业是简单得一些语法和一些简单得逻辑思维,主要内容有求三角形是什么三角形的,还有就是求坐标点所在范围的,也涉及到了数字和字母的转换,总之相相当于是给ja ...

  3. ESPCMS-Seay自动加手工代码审计

    ESPcms代码审计 源码下载地址:http://yesky.91speed.org.cn/sw/180001_190000/rar/espcms_utf8_5.4.12.05.14.rar 1.自动 ...

  4. nginx 报 502 bad gateway 分析解决

    出现nginx 502 bad gateway 问题,先从nginx端日志入手,分析排查原因. 1.排查问题 首先需要打开nginx错误日志. 编辑nginx.conf,默认路径在/usr/local ...

  5. Nutch & Solr & IKAnalyzer Deployment Debug

    Nutch配置错误 (1) IO错误   记得出错的时候把出错的目录删除,否则下次还是出错. (2) Command crawl is deprecated, please use bin/crawl ...

  6. 200行PYTHON代码实现贪吃蛇

    200行Python代码实现贪吃蛇 话不多说,最后会给出全部的代码,也可以从这里Fork,正文开始: 目前实现的功能列表: 贪吃蛇的控制,通过上下左右方向键: 触碰到边缘.墙壁.自身则游戏结束: 接触 ...

  7. MFC 工具栏ToolBar

    一.创建工具栏 1.在MFC工程,找到“资源视图”界面,右键添加资源,选择Toolbar,点击新建: 2.修改工具条属性: 3.添加工具: 新建ToolBar后,会自动生成一个工具,编辑ID后,工具条 ...

  8. Mac电脑之间的文件共享 - 偏门

    文件共享是工作中经常要进行的. Mac用户之间可以通过AirDrop来共享文件.AirDrop要借助无线网络,而很多人都是将Mac做成个人热点供手机等Wifi连接,AirDrop时必须断开热点,不方便 ...

  9. Http协议中Cookie使用详细介绍

    Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的.硬盘Cookie ...

  10. 将本地项目关联到git上面

    1.github上面创建新项目 2.初始化项目-------------可忽略 首先加入git提交忽略的文件.gitignore文件 .idea 忽略以.idea文件logs/  忽略logs文件夹* ...