青蛙小白
目录

S3cmd

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

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

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

安装

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

基本使用

https://s3tools.org/usage

生成下载预签名URL

s3cmd signurl s3://BUCKET/OBJECT <expiry_epoch|+expiry_offset>
# 60秒后过期
s3cmd signurl s3://bucket-name/path/to/file.txt +60

s3cmd signurl s3://bucket-name/path/to/file.txt  `date -d 'now + 2 hour' +%s`
s3cmd signurl s3://bucket-name/path/to/file.txt  `date -d 'now + 2 minute' +%s`

例子:

echo "hello world" > test.txt

s3cmd put test.txt s3://pvt-bucket/test.txt
upload: 'test.txt' -> 's3://pvt-bucket/test.txt'  [1 of 1]
12 of 12   100% in    0s     2.03 KB/s  done

# test.txt是私有文件, 无法匿名读取
curl http://10.111.217.90/pvt-bucket/test.txt
<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>AccessDenied</Code>
    <Message></Message>
    <BucketName>pvt-bucket</BucketName>
    <RequestId>tx00000cc6dc87c4556ca05-0067496520-90256-ceph-object-store</RequestId>
    <HostId>90256-ceph-object-store-ceph-object-store</HostId>
</Error>

# 生成下载专用的预签名URL,有效期为2分钟
s3cmd signurl s3://pvt-bucket/test.txt  `date -d 'now + 2 minute' +%s`
http://10.111.217.90:80/pvt-bucket/test.txt?AWSAccessKeyId=ZJCD6ZRDQA5X1FY3Z7XA&Expires=1732863649&Signature=B3143IKPU%2FkKpxQOnUBaquIpXGo%3D

# 在2分钟内可以访问, 注意访问时不要加默认的80端口,否则会报签名错误
curl "http://10.111.217.90/pvt-bucket/test.txt?AWSAccessKeyId=ZJCD6ZRDQA5X1FY3Z7XA&Expires=1732863649&Signature=B3143IKPU%2FkKpxQOnUBaquIpXGo%3D"
hello world

# 在2分钟后将无法访问
curl "http://10.111.217.90/pvt-bucket/test.txt?AWSAccessKeyId=ZJCD6ZRDQA5X1FY3Z7XA&Expires=1732863649&Signature=B3143IKPU%2FkKpxQOnUBaquIpXGo%3D"
<?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>
评论