s3cmd 是一款 Amazon S3 命令行工具。它不仅能上传、下载、同步,还能设置权限,下面是完整的安装使用指南。

一、安装方法

方法一:(Debian/Ubuntu )

1
2
3
wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | sudo apt-key add -
wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list
apt-get update && sudo apt-get install s3cmd

方法二:

1
2
3
4
wget http://nchc.dl.sourceforge.net/project/s3tools/s3cmd/1.0.0/s3cmd-1.0.0.tar.gz
tar -zxf s3cmd-1.0.0.tar.gz -C /usr/local/
mv /usr/local/s3cmd-1.0.0/ /usr/local/s3cmd/
ln -s /usr/local/s3cmd/s3cmd /usr/bin/s3cmd

二、使用方法

1、配置,主要是 Access Key ID 和 Secret Access Key

1
s3cmd --configure
$ s3cmd --configureEnter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.Access key and Secret key are your identifiers for Amazon S3
Access Key: ${ACCESS_KEY}
Secret Key: ${SECRET_ACCESS_KEY}Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
Path to GPG program [/usr/bin/gpg]:When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]:On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name: localhost
HTTP Proxy server port [3128]: 8080New settings:Access Key: ${ACCESS_KEY}Secret Key: ${SECRET_ACCESS_KEY}Encryption password:Path to GPG program: /usr/bin/gpgUse HTTPS protocol: FalseHTTP Proxy server name: ${ENDPOINT}HTTP Proxy server port: ${PORT}Test access with supplied credentials? [Y/n]

2、列举所有 Buckets。(bucket 相当于根文件夹)

1
s3cmd ls

3、创建 bucket,且 bucket 名称是唯一的,不能重复。

1
s3cmd mb s3://my-bucket-name

4、删除空 bucket

1
s3cmd rb s3://my-bucket-name

5、列举 Bucket 中的内容

1
s3cmd ls s3://my-bucket-name

6、上传 file.txt 到某个 bucket,

1
s3cmd put file.txt s3://my-bucket-name/file.txt

7、上传并将权限设置为所有人可读

1
s3cmd put --acl-public file.txt s3://my-bucket-name/file.txt

8、批量上传文件

1
s3cmd put ./* s3://my-bucket-name/

9、下载文件

1
s3cmd get s3://my-bucket-name/file.txt file.txt

10、批量下载

1
s3cmd get s3://my-bucket-name/* ./

11、删除文件

1
s3cmd del s3://my-bucket-name/file.txt

12、来获得对应的bucket所占用的空间大小

1
s3cmd du -H s3://my-bucket-name

三、目录处理规则

以下命令都能将dir1 中的文件上传至my-bucket-name,但效果只截然不同的。

1)dir1 不带"/"斜杠,那么dir1会作为文件路径的一部分,相当于上传整个dir1目录,即类似 "cp -r dir1/"

1
2
~/demo$ s3cmd put -r dir1 s3://my-bucket-name/
dir1/file1-1.txt -> s3://my-bucket-name/dir1/file1-1.txt  [1 of 1]

2)带"/"斜杠的 dir1,相当于上传dir1目录下的所有文件,即类似 "cp ./* "

1
2
~/demo$ s3cmd put -r dir1/ s3://my-bucket-name/
dir1/file1-1.txt -> s3://my-bucket-name/file1-1.txt  [1 of 1]

四、同步方法

这是s3cmd 使用难点,但却是最实用的功能。官方使用说明见《s3cmd sync HowTo》

首先明确,同步操作是要进行MD5校验的,只有当文件不同时,才会被传输。

4.1、常规同步操作

1、同步当前目录下所有文件

1
s3cmd sync  ./  s3://my-bucket-name/

2、加 "--dry-run"参数后,仅列出需要同步的项目,不实际进行同步。

1
s3cmd sync  --dry-run ./  s3://my-bucket-name/

3、加 " --delete-removed"参数后,会删除本地不存在的文件。

1
s3cmd sync  --delete-removed ./  s3://my-bucket-name/

4、加 " --skip-existing"参数后,不进行MD5校验,直接跳过本地已存在的文件。

1
s3cmd sync  --skip-existing ./  s3://my-bucket-name/

4.2、高级同步操作

4.2.1、排除、包含规则(--exclude 、--include)

file1-1.txt被排除,file2-2.txt同样是txt格式却能被包含。

1
2
3
~/demo$ s3cmd sync --dry-run --exclude '*.txt' --include 'dir2/*' ./  s3://my-bucket-name/
exclude: dir1/file1-1.txt
upload: ./dir2/file2-2.txt -> s3://my-bucket-name/dir2/file2-2.txt

4.2.2、从文件中载入排除或包含规则。(--exclude-from、--include-from)

1
s3cmd sync  --exclude-from pictures.exclude ./  s3://my-bucket-name/

pictures.exclude 文件内容

1
2
3
# Hey, comments are allowed here ;-)
*.jpg
*.gif

4.2.3、排除或包含规则支持正则表达式

1
--rexclude 、--rinclude、--rexclude-from、--rinclude-from

s3cmd 安装使用指南相关推荐

  1. s3cmd安装及使用命令

    转自:董俊杰博客https://www.cnblogs.com/xd502djj/p/3604783.html s3cmd 安装使用指南 https://wangyan.org/blog/s3cmd- ...

  2. Win10 Terminal + WSL 2 安装配置指南,精致开发体验 - 知乎 (zhihu.com)

    Win10 Terminal + WSL 2 安装配置指南,精致开发体验 - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/273237897

  3. 服务器证书安装配置指南(Nginx)-天威诚信

    服务器证书安装配置指南(Nginx) 一.生成证书请求 您需要使用CSR生成工具来创建证书请求.    1.下载AutoCSR:   http://www.itrus.cn/soft/autocsr. ...

  4. (转)Fedora 17 安装完全指南

    转自:http://www.onesl.com/web/ylsh/2012060501.html Fedora 17 安装完全指南 李顺亮 2012年6月5日 Fedora 17 正式发布的当天,无所 ...

  5. Bind 9.5安装入门指南

    Bind 9.5安装入门指南 安装环境:CentOs5.6 64位 bind-9.5 [root@yznvm1 bind-9.5.2-P4]# uname -a Linux yznvm1 2.6.18 ...

  6. RabbitMQ快速安装配置指南

    RabbitMQ快速安装配置指南 官网的安装教程由于需要解释原理很多废话,这里总结一下在CentOS7环境下的安装配置过程.如需理解原理,请看官网原文的安装指南或翻译 1. 安装RabbitMQ se ...

  7. centOS安装Mysql指南

    centOS安装Mysql指南 说明:使用操作系统centOS6.4 32位系统:mysql:mysql-5.7.10-linux-glibc2.5-i686.tar.gz; 一.准备 下载mysql ...

  8. GitLab 安装配置指南

    为什么80%的码农都做不了架构师?>>>    GitLab 在 CentOS 7系统上的安装配置指南 1.简单介绍 GitLab 是利用 Ruby on Rails 开发的一个开源 ...

  9. VMware Horizon7安装-分步指南

    VMware Horizon7安装-分步指南 https://blog.csdn.net/VirtualMan_/article/details/105028744 简介 在安装之前,简要介绍一下Ho ...

  10. VMware-vRealize-Log-Insight-8.2.0.0安装部署指南

    VMware-vRealize-Log-Insight-8.2.0.0安装部署指南 https://blog.csdn.net/u011775882/article/details/110928142 ...

最新文章

  1. 越小越好:为什么电子器件都这么小巧玲珑?
  2. chm 能插入公式吗_批量提取表格名称、插入空列,教你三下五除二秒速完成!...
  3. php layui ajax多图上传,Laravel+Layer实现图片上传功能(整理篇)
  4. opengl加载显示3D模型AMF类型文件
  5. c++ 类内static成员初始化
  6. gis怎么改鼠标滚轮缩放_PhotoShop缩放画面的快捷方式
  7. 魔兽老玩家无需购买《燃烧远征》资料片序列号
  8. 漫步数理统计十二——随机变量的期望
  9. jsch上传下载文件名称中文乱码
  10. PowerShell_零基础自学课程_9_高级主题:静态类和类的操作
  11. C/C++结构体语法总结
  12. 数据库文件有哪些格式以及类型呢?
  13. 【软件-ACDSee】图像合并为TIFF
  14. html name选择器,iframe标签的name属性
  15. 超声波 HC-SR04
  16. 血糖参考值及一般诊断标准
  17. 使用CNVkit进行CNV分析
  18. 调制解调系列(1) IQ调制(理论推导+工程实现(FM))
  19. Kindle查找不到wifi
  20. 海康威视与自己的笔记本连接

热门文章

  1. linux底层技术,Linux后端程序成长关键技术之底层体系结构
  2. notimplementedexception
  3. Linux中的PS1变量
  4. OSChina 周三乱弹 ——找女朋友都是双胞胎
  5. Thinkpad T410i升级问题
  6. katana材质的制作-1
  7. 【积跬步以至千里】Windows无法访问指定设备,路径或文件,您可能没有合适的权限访问
  8. Zint 库:Zint库的编译及使用(二维码QrCode生码),MFC/VC使用实例
  9. 计算机笔记检讨,上课没做笔记的反省检讨书
  10. 服务器iis建站维护,云服务器iis建站教程