s3cmd s3命令行工具
Amazon S3 Tools: Command Line S3 Client Software and S3 Backup
开发语言 python
安装
pip install s3cmd
# 或
yum install python-s3cmd
推荐版本 2+,2.0.0 版本之前测试过有bug,附录部分有说明。
配置
通过命令行传递参数配置
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',否则会发起两次签名重试请求。
通过配置文件配置
~/.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
附录
- 2.0.0版本上传大文件时有bug

s3cmd s3命令行工具的更多相关文章
- 云存储命令行工具---libs3
ceph 的客户端有很多,有s3cmd.cloudberryExplorer等,今天介绍另一个libs3 一. 安装 Libs3是RGW s3接口的命令行工具,与s3cmd类似,使用C++生成. 1. ...
- windows下的命令行工具babun
什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...
- 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...
- 命令行工具aspnet_regiis.exe实现加密和解密web.config
命令行工具aspnet_regiis.exe,是一个类似于DOS的命令工具,称之为命令解释器.使用命令行工具加密和解密web.config文件中的数据库连接字符串时,只需要简单的语法命令即可. 加密语 ...
- nodejs 编写(添加时间戳)命令行工具 timestamp
Nodejs除了编写服务器端程序还可以编写命令行工具,如gulp.js就是Nodejs编写的. 接下来我们来实现一个添加时间戳的命令: $ timestamp action https://www.n ...
- 如何用Node编写命令行工具
0. 命令行工具 当全局安装模块之后,我们可以在控制台下执行指定的命令来运行操作,如果npm一样.我把这样的模块称之为命令行工具模块(如理解有偏颇,欢迎指正) 1.用Node编写命令行工具 在Node ...
- Orchard中的命令行工具
在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户.创建博客.生成代码.配置网站.打包模块等.并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类 ...
- Linux 性能监控之命令行工具
引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...
- 命令行工具解析Crash文件,dSYM文件进行符号化
备份 文/爱掏蜂窝的熊(简书作者)原文链接:http://www.jianshu.com/p/0b6f5148dab8著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 序 在日常开发 ...
随机推荐
- OpenCV-Python 读取显示图像 | 五
目标 在这里,你将学习如何读取图像,如何显示图像以及如何将其保存回去 你将学习以下功能:cv.imread(),cv.imshow(),cv.imwrite() (可选)你将学习如何使用Matplot ...
- Make编译Ardupilot源码的两种方法
编译环境准备 Ardupilot源码下载和PX4 toolchain工具链下载 (见https://www.cnblogs.com/BlogsOfLei/p/7707485.html) 注 ...
- Jupyter修改主题,字体,字号-教程
cmd控制台安装主题工具包:主题更换工具详解 pip install --upgrade jupyterthemes 查看可用主题: jt -l 设定主题: jt -t 主题名称 恢复默认主题: jt ...
- 线程状态以及sleep yield wait join方法
前言 在日常的开发过程中,我们通过会使用Thread.sleep模拟一个耗时的任务执行过程. 在深入理解这四个方法之前,首先对线程的状态进行理解阐述. 线程概念 线程是操作系统执行任务的基本单位,处理 ...
- phpStorm 激活方式
phpStorm10 激活方式 方法一: 注册时选择License server http://idea.lanyus.com/ 方法二: 用户名:Ly 注册码: \===== L ...
- 看完这篇Exception 和 Error,和面试官扯皮就没问题了
在 Java 中的基本理念是 结构不佳的代码不能运行,发现错误的理想时期是在编译期间,因为你不用运行程序,只是凭借着对 Java 基本理念的理解就能发现问题.但是编译期并不能找出所有的问题,有一些 N ...
- Redis 过期时间相关命令
命令 示例和描述 PERSIST PERSIST key-name —— 移除键的过期时间 TTL TTL key-name —— 查看给定键距离过期还有多少秒 EXPIRE EXPIRE key-n ...
- JVM 理解性学习(二)
1.G1 垃圾回收器 G1 能更少的 "Stop the World" ,能同时对新生代老年代进行垃圾回收. G1 将 Java 堆内存拆分为多个大小相等的 Region,并且新生 ...
- 过滤器filter学习进度一
过滤器filter他的理解是: filter是对客户端访问资源的过滤,符合条件放行,不符合条件的不放行,并且可以对目标资源访问的前后进行逻辑处理. 快速入门: 1.编写一个过滤器的类实现filter接 ...
- Javascript 入门 必备知识点
1.如何得到html的input标签的值: (1). $('#id').val(); (2). $("#id").attr("value"); 2.javasc ...