主题切换
AWSCLI使用手册
运行环境
您需要 Python 2.6.3 或更高版本才能运行AWSCLI工具。
安装awscli
awscli可以使用python-pip
工具或其他包管理器下载,也可以使用amazonaws官网提供的安装包进行安装,本文使用python-pip
进行安装,其他安装方式见amazonaws官网。
执行安装命令
shell
pip install awscli
校验是否安装
执行以下命令会打印awscli的版本信息。
shell
aws --version
如果输入如下或类似信息即说明安装成功。
shell
aws-cli/2.15.2 Python/3.11.6 Linux/3.10.0-1160.76.1.el7.x86_64 exe/x86_64.centos.7 prompt/off
配置aws
执行以下命令
配置认证信息
shell
aws configure
如果显示如下的信息即可配置认证信息。
shell
AWS Access Key ID [None]: {Args1}
AWS Secret Access Key [None]: {Args2}
Default region name [None]: {Args3}
Default output format [None]: {Args4}
配置参数如下:
参数名称 | 描述 |
---|---|
Args1 | AWS 账户的访问密钥ID,如:PIM9Z4LAahZtba1BeLW2 |
Args2 | AWS 账户的密钥,如:LADiAZZeHF0bLHamidpy |
Args3 | 默认的 AWS 区域名称 |
Args4 | 默认的输出格式。可选项包括 json, text, table 等 |
设置签名版本
shell
aws configure set default.s3.signature_version s3v4
s3 指令
移动对象
指令:
shell
aws s3 mv {Args1} {Args2} [Options] --endpoint-url {OSSUrl}
参数名称 | 描述 |
---|---|
Args1 | 指定源对象的路径 |
Args2 | 指定目标路径 |
Options | 可选参数,如:--recursive、--expires-in 有效期秒数 |
OSSUrl | 访问终端节点URL |
桶移动到本地
指令:
shell
aws s3 mv s3://20001-cbq2/2config.ini /home/ --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
move: s3://20001-cbq2/2config.ini to ../home/2config.ini
本地移动到桶
指令:
shell
aws s3 mv /home/obj.txt s3://20001-cbq2/ --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
move: ../home/obj.txt to s3://20001-cbq2/obj.txt
桶移动到桶
指令:
shell
aws s3 mv s3://20001-cbq2/obj.txt s3://20001-cbq2/obj3.txt --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
move: s3://20001-cbq2/obj.txt to s3://20001-cbq2/obj3.txt
可选参数:--recursive
递归地移动目录和所有子目录
指令:
shell
aws s3 mv /home/user/ s3://20001-cbq2/ --endpoint-url fgws3-ocloud.ihep.ac.cn --recursive
结果:
shell
move: ../home/user/myfile.txt to s3://20001-cbq2/myfile.txt
move: ../home/user/myfile1.txt to s3://20001-cbq2/myfile1.txt
生成预签名
指令:
shell
aws --endpoint-url {OSSUrl} s3 presign {Args1} [Options]
参数名称 | 描述 |
---|---|
Args1 | 要生成预签名 URL 的 S3 对象的路径 |
Options | 可选参数,如:--expires-in 有效期秒数、--region 区域、--profile 配置文件名 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 presign s3://20001-cbq/2config.ini
结果:
shell
fgws3-ocloud.ihep.ac.cn/20001-cbq/2config.ini?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=PIM9Z4LAahZtba1BeLW2%2F20231209%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231209T090805Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f175942dd41bb9a890c3bdb35c6d60d50fcdfca83c029097b72eaddc1f58bc2a
可选参数:--expires-in value
指定 URL 的有效期(以秒为单位)。默认情况下,URL 的有效期为 3600 秒(1 小时)
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 presign s3://20001-cbq/2config.ini --expires-in 600
结果:
shell
fgws3-ocloud.ihep.ac.cn/20001-cbq/2config.ini?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=PIM9Z4LAahZtba1BeLW2%2F20231211%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231211T062719Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=764ed0455ed7b54eda786046f7d8dec045514cc165cddc81d4dc6fdfe8c73e79
列举桶内对象
指令:
shell
aws --endpoint-url {OSSUrl} s3 ls {Args1} [Options]
参数名称 | 描述 |
---|---|
Args1 | 要列出对象的路径 |
Options | 可选参数,如:--human-readable、--summarize、--recursive |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 ls s3://20001-cbq2
结果:
shell
2023-12-08 06:58:24 7 obj.txt
可选参数:--human-readable
以易读的格式显示文件大小
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 ls s3://20001-cbq2 --human-readable
结果:
shell
2023-12-11 03:56:27 293 Bytes .editorconfig
2023-12-11 01:53:41 0 Bytes
2023-12-11 03:56:27 280 Bytes 2config.ini
2023-12-11 03:56:27 6.8 MiB my-object
2023-12-11 03:56:27 7.2 KiB pom.xml
2023-12-09 08:56:37 0 Bytes
2023-12-11 01:53:41 0 Bytes
2023-12-11 01:53:41 0 Bytes
可选参数:--summarize
在输出的末尾添加一个摘要行,显示列出的对象总数和总大小
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 ls s3://20001-cbq2 --summarize
结果:
shell
2023-12-11 03:56:27 293 .editorconfig
2023-12-11 01:53:41 0
2023-12-11 03:56:27 280 2config.ini
2023-12-11 03:56:27 7141345 my-object
2023-12-11 03:56:27 7401 pom.xml
2023-12-09 08:56:37 0
2023-12-11 01:53:41 0
2023-12-11 01:53:41 0
Total Objects: 8
Total Size: 7149319
可选参数:--recursive
递归地列出指定存储桶下的所有对象
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 ls s3://20001-cbq2 --recursive
结果:
shell
2023-12-11 03:56:27 293 .editorconfig
2023-12-11 01:53:41 0 .vscode/
2023-12-11 03:56:27 698 .vscode/settings.json
2023-12-11 03:56:27 280 2config.ini
2023-12-11 03:56:27 7141345 my-object
2023-12-11 03:56:27 7401 pom.xml
2023-12-09 08:56:37 0 root/
2023-12-11 03:56:27 359 root/nohup.out
2023-12-11 01:53:41 0 src/
2023-12-11 01:53:41 0 src/main/
2023-12-11 01:53:41 0 src/main/java/
2023-12-11 01:53:41 0 src/main/java/com/
2023-12-11 01:53:41 0 src/main/java/com/example/
2023-12-11 03:56:27 1805 src/main/java/com/example/App.java
2023-12-11 01:53:41 0 src/test/
2023-12-11 01:53:41 0 src/test/java/
2023-12-11 01:53:41 0 src/test/java/com/
2023-12-11 01:53:41 0 src/test/java/com/example/
2023-12-11 03:56:27 296 src/test/java/com/example/AppTest.java
2023-12-11 01:53:41 0 target/
2023-12-11 03:56:27 299 target/checkstyle-cachefile
2023-12-11 03:56:27 7225 target/checkstyle-checker.xml
2023-12-11 03:56:27 223 target/checkstyle-result.xml
2023-12-11 01:53:41 0 target/classes/
2023-12-11 01:53:41 0 target/classes/com/
2023-12-11 01:53:41 0 target/classes/com/example/
2023-12-11 03:56:27 2469 target/classes/com/example/App.class
2023-12-11 01:53:41 0 target/test-classes/
2023-12-11 01:53:41 0 target/test-classes/com/
2023-12-11 01:53:41 0 target/test-classes/com/example/
2023-12-11 03:56:27 488 target/test-classes/com/example/AppTest.class
复制对象
指令:
shell
aws --endpoint-url {OSSUrl} s3 cp {Args1} {Args2} [Options]
参数名称 | 描述 |
---|---|
Args1 | 源路径:表示要复制的文件或目录的路径 |
Args2 | 目标路径:表示复制后的文件或目录的路径 |
Options | 可选参数,如:--recursive、--exclude |
OSSUrl | 访问终端节点URL |
本地复制到存储桶
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 cp /home/obja.txt s3://20001-cbq2
结果:
shell
upload: ./obj.txt to s3://20001-cbq2/obj.txt
存储桶复制到本地
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 cp s3://20001-cbq2/obj.txt /home/tong/
结果:
shell
download: s3://20001-cbq2/obj.txt to ../home/tong/obj.txt
存储桶之间进行复制
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 cp s3://20001-cbq2/obj.txt s3://20001-cbq2/obj3.txt
结果:
shell
copy: s3://20001-cbq2/obj.txt to s3://20001-cbq2/obj3.txt
可选参数:--recursive
递归地复制目录中的所有文件和子目录,且是全量复制
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 cp s3://20001-cbq2 /home/tong/ --recursive
结果:
shell
download: s3://20001-cbq2/.editorconfig to ../home/tong/.editorconfig
download: s3://20001-cbq2/2config.ini to ../home/tong/2config.ini
download: s3://20001-cbq2/.vscode/settings.json to ../home/tong/.vscode/settings.json
download: s3://20001-cbq2/abc.txt to ../home/tong/abc.txt
download: s3://20001-cbq2/obj.txt to ../home/tong/obj.txt
download: s3://20001-cbq2/pom.xml to ../home/tong/pom.xml
download: s3://20001-cbq2/obja.txt to ../home/tong/obja.txt
download: s3://20001-cbq2/root/nohup.out to ../home/tong/root/nohup.out
download: s3://20001-cbq2/target/checkstyle-result.xml to ../home/tong/target/checkstyle-result.xml
download: s3://20001-cbq2/target/checkstyle-cachefile to ../home/tong/target/checkstyle-cachefile
download: s3://20001-cbq2/src/test/java/com/example/AppTest.java to ../home/tong/src/test/java/com/example/AppTest.java
download: s3://20001-cbq2/src/main/java/com/example/App.java to ../home/tong/src/main/java/com/example/App.java
download: s3://20001-cbq2/target/classes/com/example/App.class to ../home/tong/target/classes/com/example/App.class
download: s3://20001-cbq2/target/test-classes/com/example/AppTest.class to ../home/tong/target/test-classes/com/example/AppTest.class
download: s3://20001-cbq2/target/checkstyle-checker.xml to ../home/tong/target/checkstyle-checker.xml
download: s3://20001-cbq2/my-object to ../home/tong/my-object
可选参数:--exclude
排除文件
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3 cp s3://20001-cbq s3://20001-cbq2 --recursive --exclude "*.txt"
结果:
shell
copy: s3://20001-cbq/.editorconfig to s3://20001-cbq2/.editorconfig
copy: s3://20001-cbq/2config.ini to s3://20001-cbq2/2config.ini
copy: s3://20001-cbq/.vscode/settings.json to s3://20001-cbq2/.vscode/settings.json
copy: s3://20001-cbq/src/main/java/com/example/App.java to s3://20001-cbq2/src/main/java/com/example/App.java
copy: s3://20001-cbq/root/nohup.out to s3://20001-cbq2/root/nohup.out
copy: s3://20001-cbq/target/classes/com/example/App.class to s3://20001-cbq2/target/classes/com/example/App.class
copy: s3://20001-cbq/target/checkstyle-checker.xml to s3://20001-cbq2/target/checkstyle-checker.xml
copy: s3://20001-cbq/pom.xml to s3://20001-cbq2/pom.xml
copy: s3://20001-cbq/target/test-classes/com/example/AppTest.class to s3://20001-cbq2/target/test-classes/com/example/AppTest.class
copy: s3://20001-cbq/target/checkstyle-result.xml to s3://20001-cbq2/target/checkstyle-result.xml
copy: s3://20001-cbq/src/test/java/com/example/AppTest.java to s3://20001-cbq2/src/test/java/com/example/AppTest.java
copy: s3://20001-cbq/target/checkstyle-cachefile to s3://20001-cbq2/target/checkstyle-cachefile
copy: s3://20001-cbq/my-object to s3://20001-cbq2/my-object
递归删除
指令:
shell
aws s3 rm {Args1} [Options] --endpoint-url {OSSUrl}
参数名称 | 描述 |
---|---|
Args1 | 源路径:表示要复制的文件或目录的路径 |
Options | 可选参数,如:--recursive |
OSSUrl | 访问终端节点URL |
例子:
shell
aws s3 rm s3://20001-cbq2/ --recursive --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
delete: s3://20001-cbq2/.editorconfig
delete: s3://20001-cbq2/S3test1.txt
delete: s3://20001-cbq2/S3test13.txt
delete: s3://20001-cbq2/pom.xml
delete: s3://20001-cbq2/obj3.txt
delete: s3://20001-cbq2/my-object
delete: s3://20001-cbq2/.vscode/
delete: s3://20001-cbq2/src/test/java/com/
delete: s3://20001-cbq2/target/checkstyle-checker.xml
delete: s3://20001-cbq2/src/test/
delete: s3://20001-cbq2/target/checkstyle-result.xml
delete: s3://20001-cbq2/target/checkstyle-cachefile
delete: s3://20001-cbq2/target/classes/
delete: s3://20001-cbq2/src/
delete: s3://20001-cbq2/target/
删除桶
指令:
shell
aws s3 rb {Args1} --endpoint-url {OSSUrl}
参数名称 | 描述 |
---|---|
Args1 | 要删除的 S3 存储桶的路径 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws s3 rb s3://20001-cbq2 --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
remove_bucket: 20001-cbq2
同步文件夹
指令:
shell
aws s3 sync {Args1} {Args2} [Options] --endpoint-url {OSSUrl}
参数名称 | 描述 |
---|---|
Args1 | 表示要同步的本地目录或文件的路径。可以是相对路径或绝对路径。必填参数。 |
Args2 | 表示同步的目标 S3 存储桶和路径。格式为 s3://存储桶名称/路径。必填参数 |
Options | 可选参数,如:--exclude、--include、--exclude、--delete |
OSSUrl | 访问终端节点URL |
本地文件夹同步到桶(增量)
指令:
shell
aws s3 sync /home/demo s3://20001-cbq2/ --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
upload: ../home/demo/pom.xml to s3://20001-cbq2/pom.xml
upload: ../home/demo/.editorconfig to s3://20001-cbq2/.editorconfig
upload: ../home/demo/.vscode/settings.json to s3://20001-cbq2/.vscode/settings.json
upload: ../home/demo/target/checkstyle-result.xml to s3://20001-cbq2/target/checkstyle-result.xml
upload: ../home/demo/target/checkstyle-checker.xml to s3://20001-cbq2/target/checkstyle-checker.xml
upload: ../home/demo/target/checkstyle-cachefile to s3://20001-cbq2/target/checkstyle-cachefile
upload: ../home/demo/src/main/java/com/example/App.java to s3://20001-cbq2/src/main/java/com/example/App.java
upload: ../home/demo/src/test/java/com/example/AppTest.java to s3://20001-cbq2/src/test/java/com/example/AppTest.java
upload: ../home/demo/target/test-classes/com/example/AppTest.class to s3://20001-cbq2/target/test-classes/com/example/AppTest.class
upload: ../home/demo/target/classes/com/example/App.class to s3://20001-cbq2/target/classes/com/example/App.class
桶同步到本地文件夹(增量)
指令:
shell
aws s3 sync s3://20001-cbq2/ /home/tong --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
download: s3://20001-cbq2/2config.ini to ../home/tong/2config.ini
download: s3://20001-cbq2/root/nohup.out to ../home/tong/root/nohup.out
download: s3://20001-cbq2/my-object to ../home/tong/my-object
桶与桶之间的同步(增量)
指令:
shell
aws s3 sync s3://20001-cbq s3://20001-cbq2 --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
copy: s3://20001-cbq/root/nohup.out to s3://20001-cbq2/root/nohup.out
copy: s3://20001-cbq/my-object to s3://20001-cbq2/my-object
可选参数:--delete
如果需要把源目录里不存在的文件在目标目录中也删除,可以加上delete参数
指令:
shell
aws s3 sync s3://20001-cbq2 s3://20001-cbq --endpoint-url fgws3-ocloud.ihep.ac.cn --delete
结果:
shell
delete: s3://20001-cbq/obja.txt
可选参数:--exclude
如果需要忽略某些文件的同步,可以使用这个参数,例如
指令:
shell
aws s3 sync s3://20001-cbq2 s3://20001-cbq --endpoint-url fgws3-ocloud.ihep.ac.cn --exclude "*.txt"
结果:
shell
无返回值
s3api指令
桶的操作
列举桶内对象
指令:
shell
aws s3api list-objects --bucket {Args1} [Options] --endpoint {OSSUrl}
参数名称 | 描述 |
---|---|
Args1 | 表示要列出对象的 S3 存储桶的名称。必填参数。 |
Options | 可选参数,如:--prefix |
OSSUrl | 访问终端节点URL |
例子:
shell
aws s3api list-objects --bucket 20001-cbq2 --endpoint fgws3-ocloud.ihep.ac.cn
结果:
shell
{
"Contents": [
{
"Key": "S3test1.txt",
"LastModified": "2023-12-08T07:05:48Z",
"ETag": "\"c1b712b5927a315820b2fad439eb5f72\"",
"Size": 11,
"StorageClass": "STANDARD",
"Owner": {
"ID": "0"
}
},
{
"Key": "my-object",
"LastModified": "2023-12-09T02:53:10Z",
"ETag": "\"217a6a8a26bf8636977d5e0a7f79615a-2\"",
"Size": 7141345,
"StorageClass": "STANDARD",
"Owner": {
"ID": "0"
}
}
]
}
可选参数:--prefix
指定要筛选对象的前缀
指令:
shell
aws s3api list-objects --bucket 20001-cbq --prefix my-object --endpoint fgws3-ocloud.ihep.ac.cn
结果:
shell
{
"Contents": [
{
"Key": "my-object",
"LastModified": "2023-12-11T03:26:41Z",
"ETag": "\"8eb18b1937cedfbcabb82a47f55daa7e\"",
"Size": 7141345,
"StorageClass": "STANDARD",
"Owner": {
"ID": "0"
}
}
]
}
获取桶的ACL
指令:
shell
aws --endpoint-url {OSSUrl} s3api get-bucket-acl --bucket {Args1} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要获取 ACL 的 S3 存储桶的名称。必填参数。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api get-bucket-acl --bucket 20001-cbq2
结果:
shell
{
"Owner": {
"DisplayName": "20001",
"ID": "20001"
},
"Grants": [
{
"Grantee": {
"DisplayName": "20001",
"ID": "20001",
"Type": "CanonicalUser"
},
"Permission": "FULL_CONTROL"
}
]
}
获取桶元数据
指令:
shell
aws --endpoint-url {OSSUrl} s3api head-bucket --bucket {Args1} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要检查的 S3 存储桶的名称。必填参数。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api head-bucket --bucket 20001-cbq2
结果:
shell
无返回信息
不存在则返回错误:
An error occurred (403) when calling the HeadBucket operation: Forbidden
获取桶列表
指令:
shell
aws --endpoint-url {OSSUrl} s3api list-buckets [Options]
参数名称 | 描述 |
---|---|
Options | 可选参数,如:--query 查询表达式 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api list-buckets
结果:
shell
{
"Buckets": [
{
"Name": "20001-cbq",
"CreationDate": "2023-12-08T02:35:29Z"
},
{
"Name": "20001-cbq2",
"CreationDate": "2023-12-08T03:08:40Z"
}
],
"Owner": {
"DisplayName": "",
"ID": ""
}
}
大对象分块
初始化上传段任务
指令:
shell
aws --endpoint-url {OSSUrl} s3api create-multipart-upload --bucket {Args1} --key {Args2}
参数名称 | 描述 |
---|---|
Args1 | 表示要上传到的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要上传的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api create-multipart-upload --bucket 20001-cbq2 --key my-object
结果:
shell
{
"Bucket": "20001-cbq2",
"Key": "my-object",
"UploadId": "6083958e0b6a8c906c6b1f04fbecedd92d788be7"
}
上传段
指令:
shell
aws --endpoint-url {OSSUrl} s3api upload-part --bucket {Args1} --key {Args2} --upload-id {Args3} --part-number {Args4} --body {Args5} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要上传到的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要上传的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Args3 | 表示分段上传任务的唯一标识符 UploadId。必填参数。 |
Args4 | 表示当前分段的编号。分段编号从 1 开始,按顺序递增。必填参数。 |
Args5 | 表示要上传的本地文件的路径。必填参数。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api upload-part --bucket 20001-cbq2 --key my-object --upload-id 6083958e0b6a8c906c6b1f04fbecedd92d788be7 --part-number 1 --body /home/FlashFXP.zip
结果:
shell
{
"ETag": "\"8eb18b1937cedfbcabb82a47f55daa7e\""
}
合并段
指令:
shell
aws --endpoint-url {OSSUrl} s3api complete-multipart-upload --bucket {Args1} --key {Args2} --upload-id {Args3} --multipart-upload {Args4} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要上传到的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要上传的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Args3 | 表示分段上传任务的唯一标识符 UploadId。必填参数。 |
Args4 | 表示一个 JSON 格式的字符串,其中包含了已上传分段的信息。这个参数是在所有分段都上传完成后生成的。必填参数。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api complete-multipart-upload --bucket 20001-cbq2 --key my-object --upload-id 6083958e0b6a8c906c6b1f04fbecedd92d788be7 --multipart-upload '{"Parts": [{"ETag": "8eb18b1937cedfbcabb82a47f55daa7e", "PartNumber": 1}]}'
结果:
shell
{
"Location": "http://127.0.0.1:8899/buckets/20001-cbq2/my-object",
"Bucket": "20001-cbq2",
"Key": "my-object",
"ETag": "\"217a6a8a26bf8636977d5e0a7f79615a-2\""
}
取消多段上传任务
指令:
shell
aws --endpoint-url {OSSUrl} s3api abort-multipart-upload --bucket {Args1} --key {Args2} --upload-id {Args3} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要上传到的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要上传的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Args3 | 表示分段上传任务的唯一标识符 UploadId。必填参数。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api abort-multipart-upload --bucket 20001-cbq2 --key my-object --upload-id 6083958e0b6a8c906c6b1f04fbecedd92d788be7
结果:
shell
无返回信息
不存在则返回错误:
An error occurred (NoSuchUpload) when calling the AbortMultipartUpload operation: 指定的多部分上载不存在。上载ID可能无效,或者上载可能已中止或完成。
列举已上传的段
指令:
shell
aws --endpoint-url {OSSUrl} s3api list-parts --bucket {Args1} --key {Args2} --upload-id {Args3} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要上传到的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要上传的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Args3 | 表示分段上传任务的唯一标识符 UploadId。必填参数。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api list-parts --bucket 20001-cbq2 --key my-object --upload-id 6083958e0b6a8c906c6b1f04fbecedd92d788be7
结果:
shell
{
"Parts": [
{
"PartNumber": 1,
"LastModified": "2023-12-09T02:57:28Z",
"ETag": "\"8eb18b1937cedfbcabb82a47f55daa7e\"",
"Size": 7141345
}
],
"ChecksumAlgorithm": null,
"Initiator": null,
"Owner": null,
"StorageClass": "STANDARD"
}
列举桶中已初始化多段任务
指令:
shell
aws --endpoint-url {OSSUrl} s3api list-multipart-uploads --bucket {Args1} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要查询的 S3 存储桶的名称。必填参数。 |
Options | 可选参数,如:--prefix 对象键名前缀 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api list-multipart-uploads --bucket 20001-cbq2
结果:
shell
{
"Uploads": [
{
"UploadId": "6083958e0b6a8c906c6b1f04fbecedd92d788be7",
"Key": "my-object"
}
]
}
可选参数:--prefix
指定要筛选对象的前缀
指令:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api list-multipart-uploads --bucket 20001-cbq --prefix 2config.ini
结果:
shell
{
"Uploads": [
{
"UploadId": "1d74800588e583fcf2a2fc8f4b3120ebc364598d",
"Key": "2config.ini"
}
]
}
对象操作
删除对象
指令:
shell
aws --endpoint-url {OSSUrl} s3api delete-object --bucket {Args1} --key {Args2}
参数名称 | 描述 |
---|---|
Args1 | 表示要删除对象的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要删除的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Options | 可选参数,如:--version-id 对象版本号 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api delete-object --bucket 20001-cbq2 --key obj.txt
结果:
shell
无返回值
批量删除对象
指令:
shell
aws --endpoint-url {OSSUrl} s3api delete-objects --bucket {Args1} --delete {Args2} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要删除对象的 S3 存储桶的名称。必填参数。 |
Args2 | 表示指定要删除的对象配置。必填参数。删除配置是一个 JSON 对象,包含以下属性:Objects:表示要删除的对象列表。该属性是一个数组,每个元素是一个对象,包含 Key 属性,表示要删除的对象键名(路径和文件名)。Quiet:表示是否静默删除。如果设置为 true,则不返回删除操作的结果;如果设置为 false 或不设置该属性,则返回每个删除操作的结果。 |
Options | 可选参数,如:--region 区域 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api delete-objects --bucket 20001-cbq2 --delete '{"Objects":[{"Key":"obj.txt"},{"Key":"obja.txt"}]}'
结果:
shell
{
"Deleted": [
{
"Key": "obj.txt"
},
{
"Key": "obja.txt"
}
]
}
下载文件
指令:
shell
aws --endpoint-url {OSSUrl} s3api get-object --bucket {Args1} --key {Args2} {Args3} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要获取对象的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要获取的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Args3 | 表示将对象保存到本地的路径和文件名。必填参数。 |
Options | 可选参数,如:--version-id 对象版本号 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api get-object --bucket 20001-cbq2 --key my-object /home/user/myfile.txt
结果:
shell
{
"AcceptRanges": "bytes",
"LastModified": "Fri, 08 Dec 2023 07:17:35 GMT",
"ContentLength": 7141345,
"ETag": "\"217a6a8a26bf8636977d5e0a7f79615a-2\"",
"ContentDisposition": "inline; filename=\"my-object\"",
"ContentType": "httpd/unix-directory",
"Metadata": {}
}
获取对象元数据
指令:
shell
aws --endpoint-url {OSSUrl} s3api head-object --bucket {Args1} --key {Args2} [Options]
参数名称 | 描述 |
---|---|
Args1 | 表示要获取对象的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要获取的对象在存储桶中的键名(路径和文件名)。必填参数。 |
Options | 可选参数,如:--version-id 对象版本号 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api head-object --bucket 20001-cbq2 --key my-object
结果:
shell
{
"AcceptRanges": "bytes",
"LastModified": "Fri, 08 Dec 2023 07:17:35 GMT",
"ContentLength": 7141345,
"ETag": "\"217a6a8a26bf8636977d5e0a7f79615a-2\"",
"ContentDisposition": "inline; filename=\"my-object\"",
"ContentType": "httpd/unix-directory",
"Metadata": {}
}
上传对象
指令:
shell
aws s3api put-object --bucket {Args1} --key {Args2} --body {Args3} --endpoint-url {OSSUrl}
参数名称 | 描述 |
---|---|
Args1 | 表示要上传对象的 S3 存储桶的名称。必填参数。 |
Args2 | 表示要上传对象在存储桶中的键名(路径和文件名)。必填参数。 |
Args3 | 表示要上传的本地文件的路径。可选参数,如果不指定,则需要在命令行中输入数据。 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws s3api put-object --bucket 20001-cbq2 --key obj.txt --body /home/obj.txt --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
{
"ETag": "\"49278996e3edd75db3f4ca1c5e5135a8\""
}
复制对象
指令:
shell
aws s3api copy-object --bucket {Args1} --copy-source {Args2} --key {Args3} --endpoint-url {OSSUrl}
参数名称 | 描述 |
---|---|
Args1 | 表示目标存储桶的名称。必填参数。 |
Args2 | --copy-source 源存储桶名称/源对象键名:表示源对象的存储桶名称和对象键名。必填参数。 |
Args3 | 表示复制后对象在目标存储桶中的键名(路径和文件名)。可选参数,默认为源对象的键名。 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws s3api copy-object --bucket 20001-cbq2 --copy-source 20001-cbq2/S3test1.txt --key S3test13.txt --endpoint-url fgws3-ocloud.ihep.ac.cn
结果:
shell
{
"CopyObjectResult": {
"ETag": "c1b712b5927a315820b2fad439eb5f72",
"LastModified": "2023-12-09T06:18:11.902696976Z"
}
}
上传对象标签
指令:
shell
aws --endpoint-url {OSSUrl} s3api put-object-tagging --bucket {Args1} --key {Args2} --tagging {Args3}
参数名称 | 描述 |
---|---|
Args1 | 表示存储桶的名称。必填参数。 |
Args2 | 表示需要设置标签的对象的键名。必填参数。 |
Args3 | 表示需要设置的标签。标签是以 key:value 的形式组织的键值对,多个标签之间使用空格分隔,例如:"--tagging 'Key1=Value1 Key2=Value2'"。必填参数。 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api put-object-tagging --bucket 20001-cbq2 --key my-object --tagging 'TagSet=[{Key=Department,Value=Finance}]'
结果:
shell
无返回信息
不存在则返回错误:
An error occurred (NoSuchKey) when calling the PutObjectTagging operation: 指定的密钥不存在。
获取对象标签
指令:
shell
aws --endpoint-url {OSSUrl} s3api get-object-tagging --bucket {Args1} --key {Args2}
参数名称 | 描述 |
---|---|
Args1 | 表示存储桶的名称。必填参数。 |
Args2 | 表示需要获取标签的对象的键名。必填参数。 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api get-object-tagging --bucket 20001-cbq2 --key my-object
结果:
shell
{
"TagSet": [
{
"Key": "Department",
"Value": "Finance"
}
]
}
删除对象标签
指令:
shell
aws --endpoint-url {OSSUrl} s3api delete-object-tagging --bucket {Args1} --key {Args2}
参数名称 | 描述 |
---|---|
Args1 | 表示存储桶的名称。必填参数。 |
Args2 | 表示需要删除标签的对象的键名。必填参数。 |
OSSUrl | 访问终端节点URL |
例子:
shell
aws --endpoint-url fgws3-ocloud.ihep.ac.cn s3api delete-object-tagging --bucket 20001-cbq2 --key my-object
结果:
shell
无返回信息
不存在则返回错误:
An error occurred (NoSuchKey) when calling the DeleteObjectTagging operation: 指定的密钥不存在。