S3cmd

S3cmd #

s3cmd是一个用于管理Amazon S3(Simple Storage Service)存储的开源命令行工具。它允许用户通过命令行界面轻松地与Amazon S3进行交互,执行各种操作,例如:

  1. 上传和下载文件:可以快速将本地文件上传到S3存储桶,或从S3下载文件到本地计算机。
  2. 同步文件夹:支持将本地文件夹与S3存储桶同步,可以自动检测并传输变更的文件。
  3. 管理存储桶:创建、删除、列出存储桶,设置存储桶策略和权限。
  4. 设置访问控制:管理文件和存储桶的访问权限,包括公共访问和私有访问设置。
  5. 支持多种操作:列出文件、复制文件、移动文件、删除文件等。
  6. 配置灵活:支持通过配置文件设置A凭证和其他参数。

s3cmd是一个非常实用的工具,特别适合需要scripting和自动化S3操作的开发者和系统管理员。

安装 #

1pipx install s3cmd -vvv --index-url=https://mirrors.aliyun.com/pypi/simple

基本使用 #

https://s3tools.org/usage

生成下载预签名URL #

1s3cmd signurl s3://BUCKET/OBJECT <expiry_epoch|+expiry_offset>
2# 60秒后过期
3s3cmd signurl s3://bucket-name/path/to/file.txt +60
4
5s3cmd signurl s3://bucket-name/path/to/file.txt  `date -d 'now + 2 hour' +%s`
6s3cmd signurl s3://bucket-name/path/to/file.txt  `date -d 'now + 2 minute' +%s`

例子:

 1echo "hello world" > test.txt
 2
 3s3cmd put test.txt s3://pvt-bucket/test.txt
 4upload: 'test.txt' -> 's3://pvt-bucket/test.txt'  [1 of 1]
 512 of 12   100% in    0s     2.03 KB/s  done
 6
 7# test.txt是私有文件, 无法匿名读取
 8curl http://10.111.217.90/pvt-bucket/test.txt
 9<?xml version="1.0" encoding="UTF-8"?>
10<Error>
11    <Code>AccessDenied</Code>
12    <Message></Message>
13    <BucketName>pvt-bucket</BucketName>
14    <RequestId>tx00000cc6dc87c4556ca05-0067496520-90256-ceph-object-store</RequestId>
15    <HostId>90256-ceph-object-store-ceph-object-store</HostId>
16</Error>
17
18# 生成下载专用的预签名URL,有效期为2分钟
19s3cmd signurl s3://pvt-bucket/test.txt  `date -d 'now + 2 minute' +%s`
20http://10.111.217.90:80/pvt-bucket/test.txt?AWSAccessKeyId=ZJCD6ZRDQA5X1FY3Z7XA&Expires=1732863649&Signature=B3143IKPU%2FkKpxQOnUBaquIpXGo%3D
21
22# 在2分钟内可以访问, 注意访问时不要加默认的80端口,否则会报签名错误
23curl "http://10.111.217.90/pvt-bucket/test.txt?AWSAccessKeyId=ZJCD6ZRDQA5X1FY3Z7XA&Expires=1732863649&Signature=B3143IKPU%2FkKpxQOnUBaquIpXGo%3D"
24hello world
25
26# 在2分钟后将无法访问
27curl "http://10.111.217.90/pvt-bucket/test.txt?AWSAccessKeyId=ZJCD6ZRDQA5X1FY3Z7XA&Expires=1732863649&Signature=B3143IKPU%2FkKpxQOnUBaquIpXGo%3D"
28<?xml version="1.0" encoding="UTF-8"?><Error><Code>AccessDenied</Code><Message></Message><RequestId>tx0000089f6d4a2302ab5e2-00674966a2-90256-ceph-object-store</RequestId><HostId>90256-ceph-object-store-ceph-object-store</HostId></Error>
© 2024 青蛙小白 | 总访问量 | 总访客数