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. html之样式

    HTML 样式 1. font字体 font-family 字体样式 比如:微软雅黑.Serif 字体.Sans-serif 字体.Monospace 字体.Cursive 字体.Fantasy 字体 ...

  2. 10行Python代码计算汽车数量

    当你还是个孩子坐车旅行的时候,你玩过数经过的汽车的数目的游戏吗? 在这篇文章中,我将教你如何使用10行Python代码构建自己的汽车计数程序. 以下是环境及相应的版本库: Python版本 3.6.9 ...

  3. C 最大公约数&最小公倍数

    1.最大公约数  链接 如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数.几个自然数公有的约数,叫做这几个自然数的公约数.公约数中最大的一个公约数,称为这几个自然数的最大公约数. 1 ...

  4. iOS 编译过程原理(2)

    一.前言 <iOS编译过程的原理和应用>文章介绍了 iOS 编译相关基础知识和简单应用,但也很有多问题都没有解释清楚: Clang 和 LLVM 究竟是什么 源文件到机器码的细节 Link ...

  5. iOS 静态:动态 Pod

    一.静态和动态 在项目中使用 pod 实现模块化,对于子模块和第三类库的导入方式存在两种:静态库.动态库. 当在 podfile 中指定 use_frameworks! 时,子模块和第三方类库将被打包 ...

  6. [vijos1782]借教室<线段树>

      题目链接:https://vijos.org/p/1782 题意:一个区间1,n.m次操作,每次操作让l,r区间值减去d,当有任何一个值小于0就输出当前是第几个操作 这道题其实是没有什么难度的,是 ...

  7. A 现代艺术

    时间限制 : - MS   空间限制 : 165536 KB  评测说明 : 1s 问题描述 何老板是一个现代派的艺术家.他在一块由n*n的方格构成的画布上作画.一开始,所有格子里的数字都是0.何老板 ...

  8. JSP+SSH+Mysql+C3P0实现的传智播客网上商城

    项目简介 项目来源于:https://gitee.com/2121/shop 本系统是传智播客授课时的开发案例,基于JSP+SSH+Mysql的简单网上商城.在当代开发中,SSH的使用已经逐渐被SSM ...

  9. 【高并发】什么是ForkJoin?看这一篇就够了!

    写在前面 在JDK中,提供了这样一种功能:它能够将复杂的逻辑拆分成一个个简单的逻辑来并行执行,待每个并行执行的逻辑执行完成后,再将各个结果进行汇总,得出最终的结果数据.有点像Hadoop中的MapRe ...

  10. JDBCUtils,根据当前MySQL数据库下面的表生成java实体类

    自己简单写的JDBCUtils,可以根据当前数据库下面的表生成java实体类,代码萌新,请多多包涵. 初始化配置: //驱动程序名//不固定,根据驱动 static String driver = & ...