目录
$ aws s3
描述
本节解释了所提供的高级 S3 命令集中的重要概念和符号。
如果您正在寻找适用于 CLI 的低级 S3 命令,请参阅“s3api”命令参考页面。
路径参数类型
==================
使用命令时,必须至少指定一个路径参数。有两种类型的路径参数:“LocalPath”和“S3Uri”。
“LocalPath”:表示本地文件或目录的路径。它可以写成绝对路径或相对路径。
“S3Uri”:表示 S3 对象、前缀或桶的位置。它必须以“s3://mybucket/mykey”的形式编写,其中“mybucket”是指定的 S3 桶,“mykey”是指定的 S3 键。路径参数必须以“s3://”开头,以表示该路径参数引用的是 S3 对象。请注意,前缀用正斜杠分隔。例如,如果 S3 对象“myobject”的前缀是“myprefix”,则 S3 键将是“myprefix/myobject”,如果该对象在桶“mybucket”中,则“S3Uri”将是“s3://mybucket/myprefix/myobject”。
“S3Uri”也支持 S3 访问点。要指定访问点,此值必须是“s3://<access-point-arn>/<key>”的形式。例如,如果要使用的访问点“myaccesspoint”的 ARN 为:“arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint”,并且要访问的对象的键为“mykey”,则使用的“S3URI”必须是:“s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey”。与桶名类似,您也可以将前缀与访问点 ARN 一起用于“S3Uri”。例如:“s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/myprefix/”
路径参数的顺序
=======================
每个命令都接受一个或两个位置路径参数。第一个路径参数表示源,即被引用的本地文件/目录或 S3 对象/前缀/桶。如果有第二个路径参数,它表示目标,即正在操作的本地文件/目录或 S3 对象/前缀/桶。只有一个路径参数的命令没有目标,因为操作仅在源上执行。
单个本地文件和 S3 对象操作
==========================================
某些命令仅对单个文件和 S3 对象执行操作。如果未提供“--recursive”标志,则以下命令是单个文件/对象操作。
-
"cp"
-
"mv"
-
"rm"
对于此类操作,第一个路径参数(即源)必须存在,并且是本地文件或 S3 对象。第二个路径参数(即目标)可以是本地文件、本地目录、S3 对象、S3 前缀或 S3 桶的名称。
如果目标以正斜杠或反斜杠结尾,则表示为本地目录、S3 前缀或 S3 桶。斜杠的使用取决于路径参数类型。如果路径参数是“LocalPath”,则斜杠的类型是操作系统使用的分隔符。如果路径是“S3Uri”,则必须始终使用正斜杠。如果目标末尾有斜杠,目标文件或对象将采用源文件或对象的名称。否则,如果末尾没有斜杠,文件或对象将以提供的名称保存。请参阅“cp”和“mv”中的示例以说明此描述。
目录和 S3 前缀操作
==================================
某些命令仅对本地目录或 S3 前缀/桶的内容执行操作。根据其类型在任何路径参数的末尾添加或省略正斜杠或反斜杠,都不会影响操作的结果。以下命令始终会导致目录或 S3 前缀/桶操作:
-
"sync"
-
"mb"
-
"rb"
-
"ls"
排除和包含筛选器的使用
==================================
当前,在命令的路径参数中不支持使用 UNIX 风格的通配符。但是,大多数命令具有“--exclude "<value>"" 和 "--include "<value>"" 参数,可以实现所需的结果。这些参数执行模式匹配,以排除或包含特定的文件或对象。以下模式符号受支持。
-
"*": Matches everything
-
"?": Matches any single character
-
"[sequence]": Matches any character in "sequence"
-
"[!sequence]": Matches any character not in "sequence"
这些参数中的任意数量都可以传递给一个命令。您可以通过多次提供“--exclude”或“--include”参数来实现,例如“--include ".txt" --include ".png"”。当有多个过滤器时,规则是在命令中较晚出现的过滤器优先于较早出现的过滤器。例如,如果传递给命令的过滤器参数为
--exclude "" --include ".txt"
除了以“.txt”结尾的文件外,所有文件都将被命令排除。但是,如果过滤器参数的顺序更改为
--include ".txt" --exclude ""
则所有文件都将被命令排除。
每个过滤器都根据源目录进行评估。如果源位置是一个文件而不是一个目录,则包含该文件的目录将被用作源目录。例如,假设您有以下目录结构:
/tmp/foo/
.git/
|---config
|---description
foo.txt
bar.txt
baz.jpg
在命令“aws s3 sync /tmp/foo s3://bucket/”中,源目录是“/tmp/foo”。任何包含/排除过滤器都将在源目录前缀的情况下进行评估。以下是几个示例来说明这一点。
给定上述目录结构和命令“aws s3 cp /tmp/foo s3://bucket/ --recursive --exclude ".git/"”,文件“.git/config”和“.git/description”将被排除在要上传的文件之外,因为排除过滤器“.git/”将在过滤器前加上源目录。这意味着:
/tmp/foo/.git/* -> /tmp/foo/.git/config(匹配,应排除)
/tmp/foo/.git/* -> /tmp/foo/.git/description(匹配,应排除)
/tmp/foo/.git/* -> /tmp/foo/foo.txt(不匹配,应包含)
/tmp/foo/.git/* -> /tmp/foo/bar.txt(不匹配,应包含)
/tmp/foo/.git/* -> /tmp/foo/baz.jpg(不匹配,应包含)
命令“aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "ba*""将排除“/tmp/foo/bar.txt”和“/tmp/foo/baz.jpg”:
/tmp/foo/ba* -> /tmp/foo/.git/config(不匹配,应包含)
/tmp/foo/ba* -> /tmp/foo/.git/description(不匹配,应包含)
/tmp/foo/ba* -> /tmp/foo/foo.txt(不匹配,应包含)
/tmp/foo/ba* -> /tmp/foo/bar.txt(匹配,应排除)
/tmp/foo/ba* -> /tmp/foo/baz.jpg(匹配,应排除)
请注意,默认情况下,所有文件都包含。这意味着仅提供一个“--include”过滤器不会更改要传输的文件。“--include”只会重新包含被“--exclude”过滤器排除的文件。如果您只想上传具有特定扩展名的文件,则需要首先排除所有文件,然后重新包含具有特定扩展名的文件。此命令将仅上传以“.jpg”结尾的文件:
aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "" --include ".jpg"
如果您想同时包含“.jpg”文件和“.txt”文件,可以运行:
aws s3 cp /tmp/foo/ s3://bucket/ --recursive \
--exclude "*" --include "*.jpg" --include "*.txt"
Synopsis
aws s3 <Command> [<Arg> ...]
选项
无
可用命令
-
cp
-
ls
-
mb
-
mv
-
presign
-
rb
-
rm
-
sync
-
website
$ aws s3 cp help
描述
将本地文件或 S3 对象复制到本地或 S3 中的其他位置。
Synopsis
cp
<LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
[--dryrun]
[--quiet]
[--include <value>]
[--exclude <value>]
[--acl <value>]
[--follow-symlinks | --no-follow-symlinks]
[--no-guess-mime-type]
[--sse <value>]
[--sse-c <value>]
[--sse-c-key <value>]
[--sse-kms-key-id <value>]
[--sse-c-copy-source <value>]
[--sse-c-copy-source-key <value>]
[--storage-class <value>]
[--grants <value> [<value>...]]
[--website-redirect <value>]
[--content-type <value>]
[--cache-control <value>]
[--content-disposition <value>]
[--content-encoding <value>]
[--content-language <value>]
[--expires <value>]
[--source-region <value>]
[--only-show-errors]
[--no-progress]
[--page-size <value>]
[--ignore-glacier-warnings]
[--force-glacier-transfer]
[--request-payer <value>]
[--metadata <value>]
[--metadata-directive <value>]
[--expected-size <value>]
[--recursive]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
Options
"paths"(字符串)
"--dryrun"(布尔型) 显示使用指定命令将执行的操作,但实际上不会运行这些操作。
"--quiet"(布尔型) 不显示指定命令执行的操作。
"--include"(字符串) 在命令中不排除与指定模式匹配的文件或对象。有关详细信息,请参阅排除和包含筛选器的使用。
"--exclude"(字符串) 从命令中排除与指定模式匹配的所有文件或对象。
"--acl"(字符串) 在执行命令时为对象设置 ACL。如果使用此参数,则必须在 IAM 策略的操作列表中包含 "s3:PutObjectAcl" 权限。仅接受 "private"、"public-read"、"public- read-write"、"authenticated-read"、"aws-exec-read"、"bucket-owner- read"、"bucket-owner-full-control" 和 "log-delivery-write" 的值。有关详细信息,请参阅 预定义 ACL
"--follow-symlinks" | "--no-follow-symlinks"(布尔型) 仅在从本地文件系统上传到 S3 时才跟踪符号链接。请注意,S3 不支持符号链接,因此链接目标的内容将以链接的名称上传。当既未指定 "--follow-symlinks" 也未指定 "--no-follow-symlinks" 时,默认跟踪符号链接。
"--no-guess-mime-type"(布尔型) 不要尝试猜测上传文件的 mime 类型。默认情况下,上传文件时会猜测其 mime 类型。
"--sse"(字符串) 指定 S3 中对象的服务器端加密。有效值为 "AES256" 和 "aws:kms"。如果指定了参数但未提供值,则使用 "AES256"。
"--sse-c"(字符串) 指定使用客户提供的密钥对 S3 中的对象进行服务器端加密。"AES256" 是唯一有效的值。如果指定了参数但未提供值,则使用 "AES256"。如果提供此值,则必须同时指定 "--sse-c-key"。
"--sse-c-key"(二进制) 用于对 S3 中的对象进行服务器端加密的客户提供的加密密钥。如果提供此值,则必须同时指定 "--sse-c"。提供的密钥不应进行 base64 编码。
"--sse-kms-key-id"(字符串) 应用于对 S3 中的对象进行服务器端加密的客户管理的 AWS 密钥管理服务(KMS)密钥 ID。仅当使用客户管理的客户主密钥(CMK)而不是 AWS 管理的 KMS CMK 时,才应提供此参数。
"--sse-c-copy-source" (string)
此参数仅应在复制使用客户提供的密钥在服务器端加密的 S3 对象时指定。它指定了解密源对象时要使用的算法。“AES256”是唯一有效的值。如果指定了该参数但未提供值,则使用“AES256”。如果您提供此值,则也必须指定“--sse-c-copy-source-key”。
"--sse-c-copy-source-key" (blob)
此参数仅应在复制使用客户提供的密钥在服务器端加密的 S3 对象时指定。指定客户提供的加密密钥,供 Amazon S3 用于解密源对象。提供的加密密钥必须是创建源对象时使用的密钥。如果提供此值,还必须指定“--sse-c-copy-source”。提供的密钥不应进行 base64 编码。
"--storage-class" (string)
用于对象的存储类型。
有效选项为:STANDARD | REDUCED_REDUNDANCY | STANDARD_IA |
ONEZONE_IA | INTELLIGENT_TIERING | GLACIER | DEEP_ARCHIVE |
GLACIER_IR。默认为“STANDARD”
"--grants" (string)
授予特定权限给单个用户或组。您可以提供以下形式的授权列表
--grants Permission=Grantee_Type=Grantee_ID [Permission=Grantee_Type=Grantee_ID...]
若要为多个被授权者指定相同的权限类型,请按如下方式指定权限
--grants Permission=Grantee_Type=Grantee_ID,Grantee_Type=Grantee_ID,...
每个值包含以下元素:
-
"Permission" - 指定授予的权限,可以设置为“read”、“readacl”、“writeacl”或“full”。
-
"Grantee_Type" - 指定如何识别被授权者,可以设置为“uri”或“id”。
-
"Grantee_ID" - 根据“Grantee_Type”指定被授权者。“Grantee_ID”的值可以是:
*uri - 组的 URI。有关更多信息,请参阅“谁是被授权者?”
*id - 账户的规范 ID
有关 Amazon S3 访问控制的更多信息,请参阅“访问控制”。
"--website-redirect" (string)
如果将存储桶配置为网站,则会将针对此对象的请求重定向到同一存储桶中的其他对象或外部 URL 。Amazon S3 会将此标头的值存储在对象元数据中。
"--content-type" (string)
为该操作指定明确的内容类型。此值将覆盖任何猜测的 mime 类型。
"--cache-control" (string)
指定请求/回复链中的缓存行为。
"--content-disposition"
(字符串)为对象指定表示信息。
"--content-encoding"
(字符串)指定已应用于对象的内容编码,以及为获取 Content-Type 头字段所引用的媒体类型必须应用的解码机制。
"--content-language" (string) 内容所使用的语言。
"--expires" (string)
对象不再可缓存的日期和时间。
"--source-region" (string)
在将对象从一个 S3 存储桶转移到另一个 S3 存储桶时,这会指定源存储桶的区域。请注意,通过“--region”指定或通过 CLI 配置指定的区域是指目标存储桶的区域。如果未指定“--source-region”,则源的区域将与目标存储桶的区域相同。
"--only-show-errors" (boolean)
仅显示错误和警告。
所有其他输出均被抑制。
"--no-progress" (boolean)
文件传输进度未显示。
只有在未提供安静和仅显示错误标志时,才应用此标志。
"--page-size" (integer)
对列表操作的每个响应中要返回的结果数量。默认值为 1000(允许的最大值)。如果操作超时,使用较小的值可能会有所帮助。
"--ignore-glacier-warnings" (boolean)
关闭冰川警告。
有关因涉及复制、下载或移动冰川对象而无法执行的操作的警告将不再打印到标准错误,并且不再导致命令的返回代码为“2”。
"--force-glacier-transfer" (boolean)
对同步或递归复制中的所有 Glacier 对象强制进行传输请求。
"--request-payer" (string)
确认请求者知道他们将为请求付费。桶所有者在其请求中无需指定此参数。有关从请求者付费桶下载对象的文档可在 http://docs.aws.amazon.com/Amaz onS3/latest/dev/ObjectsinRequesterPaysBuckets.html 找到。
"--metadata" (map)
用于与 S3 中的对象一起存储的元数据映射。
这将应用于作为此请求一部分的每个对象。在同步中,这意味着未更改的文件不会接收新的元数据。在两个 S3 位置之间复制时,除非另有指定,否则元数据指令参数将默认为“替换”。键 -> (字符串)
value -> (string)
速记语法:
KeyName1=string,KeyName2=string
JSON Syntax:
{"string": "string"
...}
"--metadata-directive" (string)
指定元数据是从源对象复制还是在复制 S3 对象时用提供的元数据替换。请注意,如果对象是分部分复制的,无论“--metadata-directive”的值如何,源对象的元数据都不会被复制,而是必须在命令行中将所需的元数据值指定为参数。有效值为“COPY”和“REPLACE”。如果未指定此参数,则默认使用“COPY”。如果使用“REPLACE”,则复制的对象将仅具有由 CLI 命令指定的元数据值。请注意,如果您使用以下任何参数:“--content-type”、“content-language”、“--content-encoding”、“--content-disposition”、“--cache-control”或“--expires”,如果您希望复制的对象具有指定的元数据值,则对于非多部分复制,您需要指定“--metadata-directive REPLACE”。
"--expected-size" (string)
此参数指定流的预期字节大小。请注意,仅当将流上传到 s3 且大小大于 50GB 时,才需要此参数。在这些条件下未包含此参数可能会导致由于上传中的部分过多而上传失败。
"--recursive" (boolean)
命令在指定目录或前缀下的所有文件或对象上执行。
Global Options
"--debug" (boolean)
开启调试日志记录。
"--endpoint-url" (string)
用给定的 URL 覆盖命令的默认 URL。
"--no-verify-ssl" (boolean)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 都会验证 SSL 证书。此选项可覆盖验证 SSL 证书的默认行为。
"--no-paginate" (boolean)
禁用自动分页。
"--output" (string)
命令输出的格式样式。
-
json
-
text
-
table
"--query" (string)
用于筛选响应数据的 JMESPath 查询。
"--profile" (string)
使用您的凭证文件中的特定配置文件。
"--region" (string)
要使用的区域。覆盖配置/环境设置。
"--version" (string)
显示此工具的版本。
"--color" (string)
开启/关闭颜色输出。
-
on
-
off
-
auto
"--no-sign-request" (boolean)
不要签署请求。如果提供此参数,将不会加载凭据。
"--ca-bundle" (string)
用于验证 SSL 证书的 CA 证书包。覆盖配置/环境设置。
"--cli-read-timeout" (int)
最大套接字读取时间(秒)。如果该值设置为 0,则套接字读取将阻塞且不会超时。默认值为 60 秒。
"--cli-connect-timeout" (int)
以秒为单位的最大套接字连接时间。如果值设置为 0,则套接字连接将是阻塞的且不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须安装并配置了 AWS CLI。有关更多信息,请参阅AWS CLI 用户 指南中的入门指南。
除非另有说明,否则所有示例均具有类 Unix 的引号规则。这些示例需要根据您终端的引号规则进行调整。请参阅AWS CLI 用户指南中的使用字符串的引号。
示例 1:将本地文件复制到 S3
以下“cp”命令将单个文件复制到指定的桶和键:
aws s3 cp test.txt s3://mybucket/test2.txt
Output:
upload: test.txt to s3://mybucket/test2.txt
示例 2:将本地文件复制到具有过期日期的 S3
以下“cp”命令将单个文件复制到指定的存储桶和密钥,该密钥在指定的 ISO 8601 时间戳过期:
aws s3 cp test.txt s3://mybucket/test2.txt \
--expires 2014-10-01T20:30:00Z
Output:
upload: test.txt to s3://mybucket/test2.txt
示例 3:将文件从 S3 复制到 S3
以下“cp”命令将单个 s3 对象复制到指定的桶和键:
aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt
Output:
copy: s3://mybucket/test.txt to s3://mybucket/test2.txt
示例 4:将 S3 对象复制到本地文件
以下“cp”命令将单个对象复制到本地指定的文件:
aws s3 cp s3://mybucket/test.txt test2.txt
Output:
download: s3://mybucket/test.txt to test2.txt
示例 5:将 S3 对象从一个存储桶复制到另一个存储桶
以下“cp”命令将单个对象复制到指定的存储桶,同时保留其原始名称:
aws s3 cp s3://mybucket/test.txt s3://mybucket2/
Output:
copy: s3://mybucket/test.txt to s3://mybucket2/test.txt
示例 6:递归地将 S3 对象复制到本地目录
当传递参数“--recursive”时,以下“cp”命令会递归地将指定前缀和存储桶下的所有对象复制到指定目录。在此示例中,存储桶“mybucket”包含对象“test1.txt”和“test2.txt”:
aws s3 cp s3://mybucket . \
--recursive
Output:
download: s3://mybucket/test1.txt to test1.txt
download: s3://mybucket/test2.txt to test2.txt
示例 7:递归地将本地文件复制到 S3
当使用“--recursive”参数时,以下“cp”命令会递归地将指定目录下的所有文件复制到指定的存储桶和前缀,并使用“--exclude”参数排除一些文件。在这个示例中,目录“myDir”中有文件“test1.txt”和“test2.jpg”:
aws s3 cp myDir s3://mybucket/ \
--recursive \
--exclude "*.jpg"
Output:
upload: myDir/test1.txt to s3://mybucket/test1.txt
示例 8:递归地将 S3 对象复制到另一个存储桶
当传递参数“--recursive”时,以下“cp”命令会递归地将指定存储桶下的所有对象复制到另一个存储桶,同时使用“--exclude”参数排除某些对象。在本例中,存储桶“mybucket”有对象“test1.txt”和“another/test1.txt”:
aws s3 cp s3://mybucket/ s3://mybucket2/ \
--recursive \
--exclude "another/*"
Output:
copy: s3://mybucket/test1.txt to s3://mybucket2/test1.txt
您可以组合使用“--exclude”和“--include”选项,仅复制匹配模式的对象,排除其他所有对象:
aws s3 cp s3://mybucket/logs/ s3://mybucket2/logs/ \
--recursive \
--exclude "" \
* --include "*.log"
Output:
copy: s3://mybucket/logs/test/test.log to s3://mybucket2/logs/test/test.log
copy: s3://mybucket/logs/test3.log to s3://mybucket2/logs/test3.log
示例 9:在复制 S3 对象时设置访问控制列表 (ACL)
以下“cp”命令将单个对象复制到指定的存储桶和键,同时将 ACL 设置为“public-read-write”:
aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt \
--acl public-read-write
Output:
copy: s3://mybucket/test.txt to s3://mybucket/test2.txt
请注意,如果您正在使用“--acl”选项,请确保任何相关的 IAM 策略都包含“s3:PutObjectAcl”操作:
aws iam get-user-policy \
--user-name myuser \
--policy-name mypolicy
Output:
{
"UserName": "myuser",
"PolicyName": "mypolicy",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
],
"Effect": "Allow",
"Sid": "Stmt1234567891234"
}
]
}
}
示例 10:为 S3 对象授予权限
以下“cp”命令说明了如何使用“--grants”选项向由 URI 标识的所有用户授予读取访问权限,并向由其规范 ID 标识的特定用户授予完全控制权限:
aws s3 cp file.txt s3://mybucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=id=79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
Output:
upload: file.txt to s3://mybucket/file.txt
示例 11:将本地文件流上传到 S3
警告:PowerShell 可能会更改管道输入的编码或添加 CRLF。
以下“cp”命令将本地文件流从标准输入上传到指定的存储桶和键:
aws s3 cp - s3://mybucket/stream.txt
示例 12:将大于 50GB 的本地文件流上传到 S3
以下“cp”命令将一个 51GB 的本地文件流从标准输入上传到指定的存储桶和键。必须提供“--expected-size”选项,否则上传在达到默认的 10,000 部分限制时可能会失败:
aws s3 cp - s3://mybucket/stream.txt --expected-size 54760833024
示例 13:将 S3 对象下载为本地文件流
警告:PowerShell 可能会更改管道或重定向输出的编码或添加 CRLF。
以下“cp”命令将 S3 对象作为流下载到本地标准输出。当前,作为流下载与“--recursive”参数不兼容:
aws s3 cp s3://mybucket/stream.txt -
示例 14:上传到 S3 访问点
以下“cp”命令将单个文件(“mydoc.txt”)上传到键(“mykey”)处的访问点(“myaccesspoint”):
aws s3 cp mydoc.txt s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
Output:
upload: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
示例 15:从 S3 访问点下载
以下“cp”命令将单个对象(“mykey”)从访问点(“myaccesspoint”)下载到本地文件(“mydoc.txt”):
aws s3 cp s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey mydoc.txt
Output:
download: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey to mydoc.txt
$ aws s3 ls help
描述
列出前缀下或所有 S3 存储桶中的 S3 对象和常见前缀。
请注意,对于此命令,--output 和 --no-paginate 参数将被忽略。
Synopsis
ls
<S3Uri> or NONE
[--recursive]
[--page-size <value>]
[--human-readable]
[--summarize]
[--request-payer <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
Options
"paths" (字符串)
"--recursive" (布尔值) 对指定目录或前缀下的所有文件或对象执行命令。
"--page-size" (整数) 每次对列表操作的响应中返回的结果数量。默认值为 1000(允许的最大值)。如果操作超时,使用较小的值可能会有帮助。
"--human-readable" (布尔值) 以人类可读的格式显示文件大小。
"--summarize" (布尔值) 显示摘要信息(对象数量、总大小)。
"--request-payer" (字符串) 确认请求者知道他们将为请求付费。桶所有者在其请求中无需指定此参数。有关从请求者付费桶下载对象的文档可在 http://docs.aws.amazon.com/Amaz
onS3/latest/dev/ObjectsinRequesterPaysBuckets.html 找到。
全局选项
"--debug" (布尔值)
打开调试日志记录。
"--endpoint-url" (字符串)
用给定的 URL 覆盖命令的默认 URL。
"--no-verify-ssl" (布尔值)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 将验证 SSL 证书。此选项覆盖验证 SSL 证书的默认行为。
"--no-paginate" (布尔值)
禁用自动分页。
"--output" (字符串)
命令输出的格式样式。
-
json
-
text
-
table
"--query" (字符串)
用于过滤响应数据的 JMESPath 查询。
"--profile" (字符串)
使用您的凭据文件中的特定配置文件。
"--region" (字符串)
要使用的区域。覆盖配置/环境设置。
"--version" (字符串)
显示此工具的版本。
"--color" (字符串)
打开/关闭颜色输出。
-
on
-
off
-
auto
"--no-sign-request" (布尔值)
不签署请求。如果提供此参数,将不会加载凭据。
"--ca-bundle" (字符串)
验证 SSL 证书时要使用的 CA 证书束。覆盖配置/环境设置。
"--cli-read-timeout" (整数)
最大套接字读取时间(秒)。如果值设置为 0,套接字读取将是阻塞的且不会超时。默认值为 60 秒。
"--cli-connect-timeout" (整数)
最大套接字连接时间(秒)。如果值设置为 0,套接字连接将是阻塞的且不会超时。默认值为 60 秒。
E
示例
注意:要使用以下示例,您必须安装并配置了 AWS CLI。有关更多信息,请参阅《AWS CLI 用户指南》中的入门指南。
除非另有说明,所有示例都具有类 Unix 的引号规则。这些示例需要根据您终端的引号规则进行调整。请参阅《AWS CLI 用户指南》中关于字符串使用引号的内容。
示例 1:列出用户拥有的所有存储桶
以下“ls”命令列出用户拥有的所有存储桶。在此示例中,用户拥有“mybucket”和“mybucket2”两个存储桶。时间戳是存储桶创建的日期,以您机器的时区显示。对存储桶进行更改(例如编辑其存储桶策略)时,此日期可能会更改。请注意,如果路径参数“<S3Uri>”使用“s3://”,它也将列出所有存储桶。
aws s3 ls
Output:
2013-07-11 17:08:50 mybucket
2013-07-24 14:55:44 mybucket2
示例 2:列出桶中的所有前缀和对象
以下“ls”命令列出指定桶和前缀下的对象和常见前缀。在此示例中,用户拥有名为“mybucket”的桶,其中包含对象“test.txt”和“somePrefix/test.txt”。“LastWriteTime”和“Length”是任意的。请注意,由于“ls”命令与本地文件系统无交互,因此不需要“s3://”URI 方案来消除歧义,可以省略。
aws s3 ls s3://mybucket
Output:
PRE somePrefix/
2013-07-25 17:06:27 88 test.txt
示例 3:列出特定存储桶和前缀中的所有前缀和对象
以下“ls”命令列出指定存储桶和前缀下的对象和常见前缀。但是,指定的存储桶和前缀下没有对象也没有常见前缀。
aws s3 ls s3://mybucket/noExistPrefix
Output:
None
示例 4:递归列出桶中的所有前缀和对象
以下“ls”命令将递归地列出桶中的对象。在输出中不会显示“PRE dirname/”,而是按顺序列出桶中的所有内容。
aws s3 ls s3://mybucket \
--recursive
Output:
2013-09-02 21:37:53 10 a.txt
2013-09-02 21:37:53 2863288 foo.zip
2013-09-02 21:32:57 23 foo/bar/.baz/a
2013-09-02 21:32:58 41 foo/bar/.baz/b
2013-09-02 21:32:57 281 foo/bar/.baz/c
2013-09-02 21:32:57 73 foo/bar/.baz/d
2013-09-02 21:32:57 452 foo/bar/.baz/e
2013-09-02 21:32:57 896 foo/bar/.baz/hooks/bar
2013-09-02 21:32:57 189 foo/bar/.baz/hooks/foo
2013-09-02 21:32:57 398 z.txt
示例 5:汇总桶中的所有前缀和对象
以下“ls”命令演示了使用 --human-readable 和 --summarize 选项的相同命令。--human-readable 以字节/MiB/KiB/GiB/TiB/PiB/EiB 显示文件大小。--summarize 在结果列表的末尾显示对象的总数和总大小:
aws s3 ls s3://mybucket \
--recursive \
--human-readable \
--summarize
Output:
2013-09-02 21:37:53 10 Bytes a.txt
2013-09-02 21:37:53 2.9 MiB foo.zip
2013-09-02 21:32:57 23 Bytes foo/bar/.baz/a
2013-09-02 21:32:58 41 Bytes foo/bar/.baz/b
2013-09-02 21:32:57 281 Bytes foo/bar/.baz/c
2013-09-02 21:32:57 73 Bytes foo/bar/.baz/d
2013-09-02 21:32:57 452 Bytes foo/bar/.baz/e
2013-09-02 21:32:57 896 Bytes foo/bar/.baz/hooks/bar
2013-09-02 21:32:57 189 Bytes foo/bar/.baz/hooks/foo
2013-09-02 21:32:57 398 Bytes z.txt
Total Objects: 10
Total Size: 2.9 MiB
示例 6:从 S3 访问点列出
以下“ls”命令从访问点(“myaccesspoint”)列出对象:
aws s3 ls s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/
Output:
PRE somePrefix/
2013-07-25 17:06:27 88 test.txt
$ aws s3 mb help
描述
创建一个 S3 存储桶。
概要
mb
<S3Uri>
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
选项
“path”(字符串)
全局选项
“--debug”(布尔值)
开启调试日志记录。
“--endpoint-url”(字符串)
使用给定的 URL 覆盖命令的默认 URL。
“--no-verify-ssl”(布尔值)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 都会验证 SSL 证书。此选项会覆盖验证 SSL 证书的默认行为。
“--no-paginate”(布尔值)
禁用自动分页。
“--output”(字符串)
命令输出的格式样式。
-
json
-
text
-
table
“--query”(字符串)
用于过滤响应数据的 JMESPath 查询。
“--profile”(字符串)
从您的凭据文件中使用特定的配置文件。
“--region”(字符串)
要使用的区域。覆盖配置/环境设置。
“--version”(字符串)
显示此工具的版本。
“--color”(字符串)
开启/关闭彩色输出。
-
on
-
off
-
auto
“--no-sign-request”(布尔值)
不签署请求。如果提供此参数,将不会加载凭据。
“--ca-bundle”(字符串)
验证 SSL 证书时使用的 CA 证书束。覆盖配置/环境设置。
“--cli-read-timeout”(整数)
最大套接字读取时间(秒)。如果值设置为 0,套接字读取将是阻塞的且不会超时。默认值为 60 秒。
“--cli-connect-timeout”(整数)
最大套接字连接时间(秒)。如果值设置为 0,套接字连接将是阻塞的且不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须安装和配置 AWS CLI。有关更多信息,请参阅《AWS CLI 用户指南》中的入门指南。
除非另有说明,所有示例都具有类似 Unix 的引号规则。这些示例需要根据您终端的引号规则进行调整。请参阅《AWS CLI 用户指南》中关于字符串使用引号的内容。
示例 1:创建存储桶
以下“mb”命令创建一个存储桶。在这个示例中,用户创建了名为“mybucket”的存储桶。存储桶是在用户配置文件中指定的区域创建的:
aws s3 mb s3://mybucket
Output:
make_bucket: s3://mybucket
示例 2:在指定区域创建存储桶
以下的“mb”命令会在由“--region”参数指定的区域中创建一个存储桶。在这个示例中,用户在区域“us-west-1”中创建了名为“mybucket”的存储桶:
aws s3 mb s3://mybucket \
--region us-west-1
Output:
make_bucket: s3://mybucket
$ aws s3 mv help
描述
将本地文件或 S3 对象移动到本地或 S3 中的其他位置。
"mv" 命令将源对象或文件复制到指定的目标,然后删除源对象或文件。
警告:如果您在 S3 URI 中使用任何类型的访问点 ARN 或访问点别名,则必须格外小心,以确保您的源和目标 S3 URI 解析到不同的底层存储桶。如果源和目标存储桶相同,则源文件或对象可能会移动到自身,这可能导致意外删除源文件或对象。
若要验证源和目标存储桶不相同,请使用 "--validate-same-s3-paths" 参数,或将环境变量 "AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS" 设置为 "true"。
概要
mv
<LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
[--dryrun]
[--quiet]
[--include <value>]
[--exclude <value>]
[--acl <value>]
[--follow-symlinks | --no-follow-symlinks]
[--no-guess-mime-type]
[--sse <value>]
[--sse-c <value>]
[--sse-c-key <value>]
[--sse-kms-key-id <value>]
[--sse-c-copy-source <value>]
[--sse-c-copy-source-key <value>]
[--storage-class <value>]
[--grants <value> [<value>...]]
[--website-redirect <value>]
[--content-type <value>]
[--cache-control <value>]
[--content-disposition <value>]
[--content-encoding <value>]
[--content-language <value>]
[--expires <value>]
[--source-region <value>]
[--only-show-errors]
[--no-progress]
[--page-size <value>]
[--ignore-glacier-warnings]
[--force-glacier-transfer]
[--request-payer <value>]
[--metadata <value>]
[--metadata-directive <value>]
[--recursive]
[--validate-same-s3-paths]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
选项
"paths"(字符串)
"--dryrun"(布尔值) 显示使用指定命令将执行的操作,但实际上不会运行它们。
"--quiet"(布尔值) 不显示指定命令执行的操作。
"--include"(字符串) 在命令中不排除与指定模式匹配的文件或对象。有关详细信息,请参阅排除和包含过滤器的使用。
"--exclude"(字符串) 从命令中排除与指定模式匹配的所有文件或对象。
"--acl"(字符串) 在执行命令时为对象设置 ACL。如果使用此参数,则必须在您的 IAM 策略的操作列表中包含 "s3:PutObjectAcl" 权限。仅接受 "private"、"public-read"、"public-read-write"、"authenticated-read"、"aws-exec-read"、"bucket-owner-read"、"bucket-owner-full-control" 和 "log-delivery-write" 的值。有关详细信息,请参阅罐装 ACL。
"--follow-symlinks" | "--no-follow-symlinks"(布尔值) 仅在从本地文件系统上传到 S3 时才遵循符号链接。请注意,S3 不支持符号链接,因此链接目标的内容将以链接的名称上传。当既未指定 "--follow-symlinks" 也未指定 "--no-follow-symlinks" 时,默认遵循符号链接。
"--no-guess-mime-type"(布尔值) 不要尝试猜测上传文件的 mime 类型。默认情况下,上传文件时会猜测其 mime 类型。
"--sse"(字符串) 指定 S3 中对象的服务器端加密。有效值为 "AES256" 和 "aws:kms"。如果指定了参数但未提供值,则使用 "AES256"。
"--sse-c"(字符串) 指定使用 S3 中对象的客户提供的密钥进行服务器端加密。"AES256" 是唯一有效的值。如果指定了参数但未提供值,则使用 "AES256"。如果提供此值,则必须同时指定 "--sse-c-key"。
"--sse-c-key"(blob) 用于在 S3 中对对象进行服务器端加密的客户提供的加密密钥。如果提供此值,则必须同时指定 "--sse-c"。提供的密钥不应进行 base64 编码。
"--sse-kms-key-id"(字符串) 用于在 S3 中对对象进行服务器端加密的客户管理的 AWS Key Management Service(KMS)密钥 ID。仅当使用客户管理的客户主密钥(CMK)而不是 AWS 管理的 KMS CMK 时,才应提供此参数。
"--sse-c-copy-source"(字符串) 仅在复制使用客户提供的密钥进行服务器端加密的 S3 对象时才应指定此参数。它指定解密源对象时使用的算法。"AES256" 是唯一有效的值。如果指定了参数但未提供值,则使用 "AES256"。如果提供此值,则必须同时指定 "--sse-c-copy-source-key"。
"--sse-c-copy-source-key"(blob) 仅在复制使用客户提供的密钥进行服务器端加密的 S3 对象时才应指定此参数。指定 Amazon S3 用于解密源对象的客户提供的加密密钥。提供的加密密钥必须是创建源对象时使用的密钥。如果提供此值,则必须同时指定 "--sse-c-copy-source"。提供的密钥不应进行 base64 编码。
"--storage-class"(字符串) 对象使用的存储类型。有效选择是:STANDARD | REDUCED_REDUNDANCY | STANDARD_IA | ONEZONE_IA | INTELLIGENT_TIERING | GLACIER | DEEP_ARCHIVE | GLACIER_IR。默认为 'STANDARD'
"--grants"(字符串)
向单个用户或组授予特定权限。您可以提供以下形式的授权列表
--grants Permission=Grantee_Type=Grantee_ID [Permission=Grantee_Type=Grantee_ID...]
要为多个被授权者指定相同的权限类型,请将权限指定为
--grants Permission=Grantee_Type=Grantee_ID,Grantee_Type=Grantee_ID,...
每个值包含以下元素:
-
"Permission" - 指定授予的权限,可以设置为 read、readacl、writeacl 或 full。
-
"Grantee_Type" - 指定如何识别被授权者,可以设置为 uri 或 id。
-
"Grantee_ID" - 根据 Grantee_Type 指定被授权者。"Grantee_ID" 值可以是以下之一:
*uri - 组的 URI。有关更多信息,请参阅谁是被授权者?
*id - 帐户的规范 ID
有关 Amazon S3 访问控制的更多信息,请参阅访问控制
"--website-redirect"(字符串) 如果桶被配置为网站,则将对此对象的请求重定向到同一桶中的另一个对象或外部 URL。Amazon S3 将此标头的值存储在对象元数据中。
"--content-type"(字符串) 为该操作指定明确的内容类型。此值覆盖任何猜测的 mime 类型。
"--cache-control"(字符串) 指定请求/响应链中的缓存行为。
"--content-disposition"(字符串) 指定对象的表示信息。
"--content-encoding"(字符串) 指定对对象应用了哪些内容编码,因此必须应用哪些解码机制来获取 Content-Type 标头字段引用的媒体类型。
"--content-language"(字符串) 内容所在的语言。
"--expires"(字符串) 对象不再可缓存的日期和时间。
“--source-region”(字符串)在从一个 S3 存储桶向另一个 S3 存储桶传输对象时,指定源存储桶的区域。请注意,通过“--region”或通过 CLI 的配置指定的区域是指目标存储桶的区域。如果未指定“--source-region”,则源的区域将与目标存储桶的区域相同。
“--only-show-errors”(布尔值)仅显示错误和警告。所有其他输出都将被抑制。
“--no-progress”(布尔值)不显示文件传输进度。此标志仅在未提供安静和仅显示错误标志时适用。
“--page-size”(整数)每次对列表操作的响应中返回的结果数量。默认值为 1000(允许的最大值)。使用较低的值可能有助于在操作超时的情况下。
“--ignore-glacier-warnings”(布尔值)关闭冰川警告。关于由于涉及复制、下载或移动冰川对象而无法执行的操作的警告将不再打印到标准错误,并且不再导致命令的返回代码为“2”。
“--force-glacier-transfer”(布尔值)在同步或递归复制中对所有冰川对象强制传输请求。
“--request-payer”(字符串)确认请求者知道他们将为请求付费。存储桶所有者在其请求中不需要指定此参数。有关从请求者付费存储桶下载对象的文档可在 http://docs.aws.amazon.com/Amaz
onS3/latest/dev/ObjectsinRequesterPaysBuckets.html 找到
“--metadata”(映射)要与 S3 中的对象一起存储的元数据映射。这将应用于此请求的每个对象。在同步中,这意味着未更改的文件不会接收新的元数据。在两个 S3 位置之间复制时,除非另有指定,否则 metadata-directive 参数将默认为“REPLACE”。键 -> (字符串)
值 -> (字符串)
简写语法:
KeyName1=string,KeyName2=string
JSON 语法:
{"string": "string"
...}
“--metadata-directive”(字符串)指定在复制 S3 对象时,元数据是从源对象复制还是用提供的元数据替换。请注意,如果对象是分部分复制的,无论“--metadata-directive”的值如何,源对象的元数据都不会被复制,而是必须在命令行中将所需的元数据值指定为参数。有效值为“COPY”和“REPLACE”。如果未指定此参数,默认将使用“COPY”。如果使用“REPLACE”,则复制的对象将仅具有 CLI 命令指定的元数据值。请注意,如果您正在使用以下任何参数:“--content-type”、“content-language”、“--content-encoding”、“--content-disposition”、“--cache-control”或“--expires”,如果您希望复制的对象具有指定的元数据值,则对于非多部分复制,您需要指定“--metadata-directive REPLACE”。
“--recursive”(布尔值)对指定目录或前缀下的所有文件或对象执行命令。
“--validate-same-s3-paths”(布尔值)将源和目标 S3 URI 解析为其底层存储桶,并验证文件或对象未被移动到自身。如果您在 S3 URI 中使用任何类型的访问点 ARN 或访问点别名,我们强烈建议使用此参数以帮助防止意外删除源文件或对象。此参数解析 S3 访问点 ARN 和别名、S3 在 Outposts 上的访问点 ARN 以及多区域访问点 ARN 的底层存储桶。S3 在 Outposts 上的访问点别名不受支持。您可以设置环境变量“AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS”为“true”来代替使用此参数。注意:路径验证需要进行额外的 API 调用。此路径验证机制的未来更新可能会更改所进行的 API 调用。
全局选项
“--debug”(布尔值)
开启调试日志记录。
“--endpoint-url”(字符串)
使用给定的 URL 覆盖命令的默认 URL。
“--no-verify-ssl”(布尔值)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 会验证 SSL 证书。此选项会覆盖验证 SSL 证书的默认行为。
“--no-paginate”(布尔值)
禁用自动分页。
“--output”(字符串)
命令输出的格式化样式。
-
json
-
text
-
table
“--query”(字符串)
用于过滤响应数据的 JMESPath 查询。
“--profile”(字符串)
从您的凭证文件中使用特定的配置文件。
“--region”(字符串)
要使用的区域。覆盖配置/环境设置。
“--version”(字符串)
显示此工具的版本。
“--color”(字符串)
开启/关闭彩色输出。
-
on
-
off
-
auto
“--no-sign-request”(布尔值)
不签署请求。如果提供此参数,将不会加载凭据。
“--ca-bundle”(字符串)
验证 SSL 证书时使用的 CA 证书捆绑包。覆盖配置/环境设置。
“--cli-read-timeout”(整数)
最大套接字读取时间(以秒为单位)。如果值设置为 0,则套接字读取将是阻塞的且不会超时。默认值为 60 秒。
“--cli-connect-timeout”(整数)
最大套接字连接时间(以秒为单位)。如果值设置为 0,则套接字连接将是阻塞的且不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须安装并配置了 AWS CLI。有关更多信息,请参阅AWS CLI 用户指南中的入门指南。
除非另有说明,所有示例都遵循类 Unix 的引号规则。这些示例可能需要根据您终端的引号规则进行调整。请参阅AWS CLI 用户指南中的使用字符串的引号。
示例 1:将本地文件移动到指定的存储桶
以下“mv”命令将单个文件移动到指定的存储桶和键。
aws s3 mv test.txt s3://mybucket/test2.txt
Output:
move: test.txt to s3://mybucket/test2.txt
示例 2:将对象移动到指定的存储桶和键
以下的“mv”命令将单个 s3 对象移动到指定的存储桶和键。
aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt
Output:
move: s3://mybucket/test.txt to s3://mybucket/test2.txt
示例 3:将 S3 对象移动到本地目录
下面的“mv”命令将单个对象移动到本地指定的文件。
aws s3 mv s3://mybucket/test.txt test2.txt
Output:
move: s3://mybucket/test.txt to test2.txt
示例 4:将具有原始名称的对象移动到指定的存储桶
以下“mv”命令将单个对象移动到指定的存储桶,同时保留其原始名称:
aws s3 mv s3://mybucket/test.txt s3://mybucket2/
Output:
move: s3://mybucket/test.txt to s3://mybucket2/test.txt
示例 5:将桶中的所有对象和前缀移动到本地目录
当使用参数“--recursive”传递时,以下“mv”命令会递归地将指定前缀和桶下的所有对象移动到指定目录。在此示例中,桶“mybucket”具有对象“test1.txt”和“test2.txt”。
aws s3 mv s3://mybucket . \
--recursive
Output:
move: s3://mybucket/test1.txt to test1.txt
move: s3://mybucket/test2.txt to test2.txt
示例 6:将存储桶中的所有对象和前缀移动到本地目录,除了.jpg 文件
当使用参数“--recursive”传递时,以下“mv”命令会递归地将指定目录下的所有文件移动到指定的存储桶和前缀,同时使用“--exclude”参数排除某些文件。在此示例中,目录“myDir”包含文件“test1.txt”和“test2.jpg”。
aws s3 mv myDir s3://mybucket/ \
--recursive \
--exclude "*.jpg"
Output:
move: myDir/test1.txt to s3://mybucket2/test1.txt
示例 7:将存储桶中的所有对象和前缀移动到本地目录,除指定前缀外
当传递参数“--recursive”时,以下“mv”命令会递归地将指定存储桶下的所有对象移动到另一个存储桶,同时使用“--exclude”参数排除某些对象。在此示例中,存储桶“mybucket”具有对象“test1.txt”和“another/test1.txt”。
aws s3 mv s3://mybucket/ s3://mybucket2/ \
--recursive \
--exclude "mybucket/another/*"
Output:
move: s3://mybucket/test1.txt to s3://mybucket2/test1.txt
示例 8:将对象移动到指定的存储桶并设置 ACL
以下“mv”命令将单个对象移动到指定的存储桶和键,同时将 ACL 设置为“public-read-write”。
aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt \
--acl public-read-write
Output:
move: s3://mybucket/test.txt to s3://mybucket/test2.txt
示例 9:将本地文件移动到指定的存储桶并授予权限
以下的“mv”命令说明了如何使用“--grants”选项为所有用户授予读取权限,并为通过其电子邮件地址识别的特定用户授予完全控制权限。
aws s3 mv file.txt s3://mybucket/ \
--grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com
Output:
move: file.txt to s3://mybucket/file.txt
示例 10:将文件移动到 S3 访问点
以下“mv”命令将名为“mydoc.txt”的单个文件移动到名为“myaccesspoint”的访问点,键名为“mykey”。
aws s3 mv mydoc.txt s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
Output:
move: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
$ aws s3 presign help
描述
为 Amazon S3 对象生成预签名的 URL。这允许任何收到预签名 URL 的人通过 HTTP GET 请求检索 S3 对象。对于 sigv4 请求,需要显式配置区域。
概要
presign
<S3Uri>
[--expires-in <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
选项
"路径"(字符串)
"--expires-in"(整数) 预签名 URL 过期的秒数。默认是 3600 秒。
全局选项
"--debug"(布尔值)
打开调试日志记录。
"--endpoint-url"(字符串)
用给定的 URL 覆盖命令的默认 URL。
"--no-verify-ssl"(布尔值)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 都会验证 SSL 证书。此选项会覆盖验证 SSL 证书的默认行为。
"--no-paginate"(布尔值)
禁用自动分页。
"--output"(字符串)
命令输出的格式化样式。
-
json
-
text
-
table
"--query"(字符串)
在过滤响应数据时使用的 JMESPath 查询。
"--profile"(字符串)
从您的凭据文件中使用特定的配置文件。
"--region"(字符串)
要使用的区域。覆盖配置/环境设置。
"--version"(字符串)
显示此工具的版本。
"--color"(字符串)
打开/关闭彩色输出。
-
on
-
off
-
auto
"--no-sign-request"(布尔值)
不签署请求。如果提供此参数,将不会加载凭据。
"--ca-bundle"(字符串)
验证 SSL 证书时使用的 CA 证书捆绑包。覆盖配置/环境设置。
"--cli-read-timeout"(整数)
最大套接字读取时间(秒)。如果将值设置为 0,套接字读取将是阻塞的且不会超时。默认值为 60 秒。
"--cli-connect-timeout"(整数)
最大套接字连接时间(秒)。如果将值设置为 0,套接字连接将是阻塞的且不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须已安装并配置了 AWS CLI。有关更多信息,请参阅AWS CLI 用户指南中的入门指南。
除非另有说明,所有示例都具有类似 Unix 的引用规则。这些示例需要根据您终端的引用规则进行调整。请参阅AWS CLI 用户指南中的使用字符串的引用符号。
示例 1:使用默认的一小时有效期创建指向 S3 存储桶中对象的预签名 URL
以下"presign"命令为指定的存储桶和键生成一个有效期为一小时的预签名 URL。
aws s3 presign s3://DOC-EXAMPLE-BUCKET/test2.txt
Output:
https://DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456
示例 2:创建具有自定义生存期的预签名 URL,该 URL 链接到 S3 存储桶中的对象
以下“presign”命令为指定的存储桶和键生成一个预签名 URL,该 URL 有效期为一周。
aws s3 presign s3://DOC-EXAMPLE-BUCKET/test2.txt \
--expires-in 604800
Output:
https://DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456
有关更多信息,请参阅 S3 开发人员指南中的“与他人共享对象”。
$ aws s3 rb help
描述
删除一个空的 S3 桶。在删除之前,桶必须完全没有对象和版本化对象。但是,可以使用“--force”参数在删除桶之前删除桶中的非版本化对象。
概要
rb
<S3Uri>
[--force]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
选项
“路径”(字符串)
“--force”(布尔值)删除桶中的所有对象,包括桶本身。请注意,在此过程中不会删除版本化对象,这会导致桶删除失败,因为桶不会为空。要删除版本化对象,请使用“s3api delete-object”命令并附带“--version-id”参数。
全局选项
“--debug”(布尔值)
打开调试日志记录。
“--endpoint-url”(字符串)
使用给定的 URL 覆盖命令的默认 URL。
“--no-verify-ssl”(布尔值)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 都会验证 SSL 证书。此选项会覆盖验证 SSL 证书的默认行为。
“--no-paginate”(布尔值)
禁用自动分页。
“--output”(字符串)
命令输出的格式样式。
-
json
-
text
-
table
“--query”(字符串)
用于过滤响应数据的 JMESPath 查询。
“--profile”(字符串)
从您的凭据文件中使用特定的配置文件。
“--region”(字符串)
要使用的区域。覆盖配置/环境设置。
“--version”(字符串)
显示此工具的版本。
“--color”(字符串)
打开/关闭颜色输出。
-
on
-
off
-
auto
“--no-sign-request”(布尔值)
不签署请求。如果提供此参数,则不会加载凭据。
“--ca-bundle”(字符串)
验证 SSL 证书时要使用的 CA 证书捆绑包。覆盖配置/环境设置。
“--cli-read-timeout”(整数)
最大套接字读取时间(秒)。如果值设置为 0,则套接字读取将是阻塞的且不会超时。默认值为 60 秒。
“--cli-connect-timeout”(整数)
最大套接字连接时间(秒)。如果值设置为 0,则套接字连接将是阻塞的且不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须安装并配置了 AWS CLI。有关更多信息,请参阅《AWS CLI 用户指南》中的入门指南。
除非另有说明,否则所有示例都具有类似 Unix 的引号规则。这些示例需要根据您终端的引号规则进行调整。请参阅《AWS CLI 用户指南》中的“使用字符串的引号”。
示例 1:删除存储桶
以下“rb”命令可删除一个存储桶。在此示例中,用户的存储桶为“mybucket”。请注意,删除存储桶前,存储桶必须为空:
aws s3 rb s3://mybucket
Output:
remove_bucket: mybucket
示例 2:强制删除存储桶
以下“rb”命令使用“--force”参数先删除存储桶中的所有对象,然后再删除存储桶本身。在此示例中,用户的存储桶是“mybucket”,“mybucket”中的对象是“test1.txt”和“test2.txt”:
aws s3 rb s3://mybucket \
--force
Output:
delete: s3://mybucket/test1.txt
delete: s3://mybucket/test2.txt
remove_bucket: mybucket
$ aws s3 rm help
描述
删除一个 S3 对象。
概要
rm
<S3Uri>
[--dryrun]
[--quiet]
[--recursive]
[--request-payer <value>]
[--include <value>]
[--exclude <value>]
[--only-show-errors]
[--page-size <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
选项
"paths"(字符串)
"--dryrun"(布尔值) 显示使用指定命令将执行的操作,但实际上不会运行它们。
"--quiet"(布尔值) 不显示指定命令执行的操作。
"--recursive"(布尔值) 对指定目录或前缀下的所有文件或对象执行命令。
"--request-payer"(字符串) 确认请求者知道他们将为请求付费。桶所有者在其请求中无需指定此参数。有关从请求者付费桶下载对象的文档可在 Downloading objects from Requester Pays buckets - Amazon Simple Storage Service 找到。
"--include"(字符串) 在命令中不排除与指定模式匹配的文件或对象。有关详细信息,请参阅排除和包含筛选器的使用。
"--exclude"(字符串) 从命令中排除与指定模式匹配的所有文件或对象。
"--only-show-errors"(布尔值) 仅显示错误和警告。所有其他输出均被抑制。
"--page-size"(整数) 每次对列表操作的响应中返回的结果数量。默认值为 1000(允许的最大值)。如果操作超时,使用较低的值可能会有所帮助。
全局选项
"--debug" (布尔值)
启用调试日志记录。
"--endpoint-url" (字符串)
使用给定的 URL 覆盖命令的默认 URL。
"--no-verify-ssl" (布尔值)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 都会验证 SSL 证书。此选项会覆盖验证 SSL 证书的默认行为。
"--no-paginate" (布尔值)
禁用自动分页。
"--output" (字符串)
命令输出的格式化样式。
-
json
-
text
-
table
"--query" (字符串)
在筛选响应数据时使用的 JMESPath 查询。
"--profile" (字符串)
从您的凭据文件中使用特定的配置文件。
"--region" (字符串)
要使用的区域。覆盖配置/环境设置。
"--version" (字符串)
显示此工具的版本。
"--color" (字符串)
启用/禁用彩色输出。
-
on
-
off
-
auto
"--no-sign-request" (布尔值)
不签署请求。如果提供此参数,将不会加载凭据。
"--ca-bundle" (字符串)
在验证 SSL 证书时使用的 CA 证书束。覆盖配置/环境设置。
"--cli-read-timeout" (整数)
最大套接字读取时间(秒)。如果值设置为 0,套接字读取将是阻塞的且不会超时。默认值为 60 秒。
"--cli-connect-timeout" (整数)
最大套接字连接时间(秒)。如果值设置为 0,套接字连接将是阻塞的且不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须安装并配置了 AWS CLI。有关更多信息,请参阅《AWS CLI 用户指南》中的入门指南。
除非另有说明,否则所有示例均采用类 Unix 引号规则。这些示例需要根据您终端的引号规则进行调整。请参阅《AWS CLI 用户指南》中关于使用字符串引号的内容。
示例 1:删除 S3 对象
以下“rm”命令删除单个 s3 对象:
aws s3 rm s3://mybucket/test2.txt
Output:
delete: s3://mybucket/test2.txt
示例 2:删除桶中的所有内容
当传递参数“--recursive”时,以下“rm”命令会递归删除指定桶及其前缀下的所有对象。在此示例中,桶“mybucket”包含对象“test1.txt”和“test2.txt”:
aws s3 rm s3://mybucket \
--recursive
Output:
delete: s3://mybucket/test1.txt
delete: s3://mybucket/test2.txt
示例 3:删除存储桶中的所有内容,但保留.jpg
文件
以下“rm”命令在传递“--recursive”参数时递归删除指定存储桶和前缀下的所有对象,同时使用“--exclude”参数排除某些对象。 在这个例子中,存储桶“mybucket”包含对象“test1.txt”和“test2.jpg”:
aws s3 rm s3://mybucket/ \
--recursive \
--exclude "*.jpg"
Output:
delete: s3://mybucket/test1.txt
示例 4:删除存储桶中除指定前缀下的对象之外的所有内容
当使用参数“--recursive”传递时,以下“rm”命令会递归删除指定存储桶和前缀下的所有对象,同时使用“--exclude”参数排除特定前缀下的所有对象。在此示例中,存储桶“mybucket”具有对象“test1.txt”和“another/test.txt”:
aws s3 rm s3://mybucket/ \
--recursive \
--exclude "another/*"
Output:
delete: s3://mybucket/test1.txt
示例 5:从 S3 访问点删除对象
以下“rm”命令从访问点(“myaccesspoint”)中删除单个对象(“mykey”)。 :: 以下“rm”命令从访问点(“myaccesspoint”)中删除单个对象(“mykey”)。
aws s3 rm s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
Output:
delete: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
$ aws s3 sync help
描述
同步目录和 S3 前缀。递归地将新的和更新的文件从源目录复制到目标目录。仅在目标目录包含一个或多个文件时才创建文件夹。
概要
sync
<LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
[--dryrun]
[--quiet]
[--include <value>]
[--exclude <value>]
[--acl <value>]
[--follow-symlinks | --no-follow-symlinks]
[--no-guess-mime-type]
[--sse <value>]
[--sse-c <value>]
[--sse-c-key <value>]
[--sse-kms-key-id <value>]
[--sse-c-copy-source <value>]
[--sse-c-copy-source-key <value>]
[--storage-class <value>]
[--grants <value> [<value>...]]
[--website-redirect <value>]
[--content-type <value>]
[--cache-control <value>]
[--content-disposition <value>]
[--content-encoding <value>]
[--content-language <value>]
[--expires <value>]
[--source-region <value>]
[--only-show-errors]
[--no-progress]
[--page-size <value>]
[--ignore-glacier-warnings]
[--force-glacier-transfer]
[--request-payer <value>]
[--metadata <value>]
[--metadata-directive <value>]
[--size-only]
[--exact-timestamps]
[--delete]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
选项
"paths"(字符串)
"--dryrun"(布尔值) 显示使用指定命令将执行的操作,但实际上并不运行它们。
"--quiet"(布尔值) 不显示指定命令执行的操作。
"--include"(字符串) 在命令中不排除与指定模式匹配的文件或对象。有关详细信息,请参阅排除和包含过滤器的使用。
"--exclude"(字符串) 从命令中排除与指定模式匹配的所有文件或对象。
"--acl"(字符串) 执行命令时为对象设置 ACL。如果使用此参数,您必须在 IAM 策略的操作列表中包含 "s3:PutObjectAcl" 权限。仅接受 "private"、"public-read"、"public-read-write"、"authenticated-read"、"aws-exec-read"、"bucket-owner-read"、"bucket-owner-full-control" 和 "log-delivery-write" 的值。有关详细信息,请参阅预定义的 ACL
"--follow-symlinks" | "--no-follow-symlinks"(布尔值) 仅在从本地文件系统上传到 S3 时才跟踪符号链接。请注意,S3 不支持符号链接,因此链接目标的内容将以链接的名称上传。当既未指定 "--follow-symlinks" 也未指定 "--no-follow-symlinks" 时,默认值是跟踪符号链接。
"--no-guess-mime-type"(布尔值) 不要尝试猜测上传文件的mime类型。默认情况下,上传文件时会猜测其 mime 类型。
"--sse"(字符串) 指定 S3 中对象的服务器端加密。有效值为 "AES256" 和 "aws:kms"。如果指定了参数但未提供值,则使用 "AES256"。
"--sse-c"(字符串) 指定使用客户提供的密钥对 S3 中的对象进行服务器端加密。"AES256" 是唯一有效的值。如果指定了参数但未提供值,则使用 "AES256"。如果提供此值,则必须同时指定 "--sse-c-key"。
"--sse-c-key"(blob) 客户提供的用于在 S3 中对对象进行服务器端加密的加密密钥。如果提供此值,则必须同时指定 "--sse-c"。提供的密钥不应进行 base64 编码。
"--sse-kms-key-id"(字符串) 应用于在 S3 中对对象进行服务器端加密的客户管理的 AWS Key Management Service (KMS) 密钥 ID。只有在使用客户管理的客户主密钥 (CMK) 而不是 AWS 管理的 KMS CMK 时,才应提供此参数。
"--sse-c-copy-source"(字符串) 仅在复制通过客户提供的密钥进行服务器端加密的 S3 对象时才应指定此参数。它指定解密源对象时使用的算法。"AES256" 是唯一有效的值。如果指定了参数但未提供值,则使用 "AES256"。如果提供此值,则必须同时指定 "--sse-c-copy-source-key"。
"--sse-c-copy-source-key"(blob) 仅在复制通过客户提供的密钥进行服务器端加密的 S3 对象时才应指定此参数。指定 Amazon S3 用于解密源对象的客户提供的加密密钥。提供的加密密钥必须是创建源对象时使用的密钥之一。如果提供此值,则必须同时指定 "--sse-c-copy-source"。提供的密钥不应进行 base64 编码。
"--storage-class"(字符串) 对象使用的存储类型。有效选择是:STANDARD | REDUCED_REDUNDANCY | STANDARD_IA | ONEZONE_IA | INTELLIGENT_TIERING | GLACIER | DEEP_ARCHIVE | GLACIER_IR。默认值为 'STANDARD'
"--grants"(字符串)
向个人用户或组授予特定权限。您可以提供以下形式的权限列表
--grants Permission=Grantee_Type=Grantee_ID [Permission=Grantee_Type=Grantee_ID...]
要为多个被授权者指定相同的权限类型,请将权限指定为
--grants Permission=Grantee_Type=Grantee_ID,Grantee_Type=Grantee_ID,...
每个值包含以下元素:
-
"Permission" - 指定授予的权限,可以设置为 read、readacl、writeacl 或 full。
-
"Grantee_Type" - 指定如何标识被授权者,可以设置为 uri 或 id。
-
"Grantee_ID" - 根据 Grantee_Type 指定被授权者。"Grantee_ID" 值可以是以下之一:
*uri - 组的 URI。有关更多信息,请参阅谁是被授权者?
*id - 帐户的规范 ID
有关 Amazon S3 访问控制的更多信息,请参阅访问控制
"--website-redirect"(字符串) 如果桶配置为网站,则将对此对象的请求重定向到同一桶中的另一个对象或外部 URL。Amazon S3 将此标头的值存储在对象元数据中。
"--content-type"(字符串) 为此操作指定明确的内容类型。此值将覆盖任何猜测的 mime 类型。
"--cache-control"(字符串) 指定请求/响应链中的缓存行为。
"--content-disposition"(字符串) 指定对象的表示信息。
"--content-encoding"(字符串) 指定对对象应用了哪些内容编码,因此必须应用哪些解码机制才能获取 Content-Type 标头字段引用的媒体类型。
"--content-language"(字符串) 内容的语言。
"--expires"(字符串) 对象不再可缓存的日期和时间。
“--source-region”(字符串)在将对象从一个 s3 存储桶传输到另一个 s3 存储桶时,此参数指定源存储桶的区域。请注意,由“--region”或通过 CLI 配置指定的区域是指目标存储桶的区域。如果未指定“--source-region”,则源的区域将与目标存储桶的区域相同。
“--only-show-errors”(布尔值)仅显示错误和警告。所有其他输出都被抑制。
“--no-progress”(布尔值)不显示文件传输进度。此标志仅在未提供安静和仅显示错误标志时适用。
“--page-size”(整数)每个对列表操作的响应中返回的结果数。默认值为 1000(允许的最大值)。如果操作超时,使用较低的值可能会有所帮助。
“--ignore-glacier-warnings”(布尔值)关闭冰川警告。有关由于涉及复制、下载或移动冰川对象而无法执行的操作的警告将不再打印到标准错误,并且不再导致命令的返回代码为“2”。
“--force-glacier-transfer”(布尔值)在异步或递归复制中对所有冰川对象强制进行传输请求。
“--request-payer”(字符串)确认请求者知道他们将为请求付费。存储桶所有者在其请求中无需指定此参数。有关从请求者付费存储桶下载对象的文档可在 Downloading objects from Requester Pays buckets - Amazon Simple Storage Service 中找到。
“--metadata”(映射)要与 S3 中的对象一起存储的元数据映射。这将应用于此请求的每个对象。在同步中,这意味着未更改的文件不会接收新的元数据。在两个 s3 位置之间复制时,除非另有指定,否则 metadata-directive 参数的默认值将为“REPLACE”。
键 -> (字符串)
值 -> (字符串)
简写语法:
KeyName1=string,KeyName2=string
JSON 语法:
{"string": "string"
...}
“--metadata-directive”(字符串)指定在复制 S3 对象时,元数据是从源对象复制还是用提供的元数据替换。请注意,如果对象是分部分复制的,则无论“--metadata-directive”的值如何,源对象的元数据都不会被复制,而是必须在命令行上指定所需的元数据值作为参数。有效值为“COPY”和“REPLACE”。如果未指定此参数,则默认使用“COPY”。如果使用“REPLACE”,则复制的对象将仅具有由 CLI 命令指定的元数据值。请注意,如果您正在使用以下任何参数:“--content-type”、“content-language”、“--content-encoding”、“--content-disposition”、“--cache-control”或“--expires”,如果您希望复制的对象具有指定的元数据值,则对于非多部分复制,您需要指定“--metadata-directive REPLACE”。
“--size-only”(布尔值)使每个键的大小成为决定是否从源同步到目标的唯一标准。
“--exact-timestamps”(布尔值)从 S3 同步到本地时,仅当时间戳完全匹配时,才会忽略大小相同的项目。默认行为是忽略大小相同的项目,除非本地版本比 S3 版本新。
“--delete”(布尔值)在同步期间,存在于目标但不存在于源的文件将被删除。请注意,被过滤器排除的文件不会被删除。
全局选项
"--debug" (布尔型)
开启调试日志记录。
"--endpoint-url" (字符串)
使用给定的 URL 覆盖命令的默认 URL。
"--no-verify-ssl" (布尔型)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 都会验证 SSL 证书。此选项将覆盖验证 SSL 证书的默认行为。
"--no-paginate" (布尔型)
禁用自动分页。
"--output" (字符串)
命令输出的格式样式。
-
json
-
text
-
table
"--query" (字符串)
在过滤响应数据时使用的 JMESPath 查询。
"--profile" (字符串)
从您的凭据文件中使用特定的配置文件。
"--region" (字符串)
要使用的区域。覆盖配置/环境设置。
"--version" (字符串)
显示此工具的版本。
"--color" (字符串)
开启/关闭彩色输出。
-
on
-
off
-
auto
"--no-sign-request" (布尔型)
不签署请求。如果提供此参数,将不会加载凭据。
"--ca-bundle" (字符串)
在验证 SSL 证书时使用的 CA 证书捆绑包。覆盖配置/环境设置。
"--cli-read-timeout" (整型)
最大套接字读取时间(秒)。如果值设置为 0,套接字读取将是阻塞的,不会超时。默认值为 60 秒。
"--cli-connect-timeout" (整型)
最大套接字连接时间(秒)。如果值设置为 0,套接字连接将是阻塞的,不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须安装并配置 AWS CLI。更多信息请参阅《AWS CLI 用户指南》中的入门指南。
除非另有说明,否则所有示例均采用类 Unix 的引号规则。这些示例可能需要根据您终端的引号规则进行调整。请参阅《AWS CLI 用户指南》中关于字符串使用引号的内容。
示例 1:将所有本地对象同步到指定桶
以下“sync”命令通过将本地文件上传到 S3 来将本地目录中的对象同步到指定的前缀和桶。如果本地文件的大小与 S3 对象的大小不同、本地文件的最后修改时间比 S3 对象的最后修改时间新,或者指定桶和前缀下不存在本地文件,则需要上传本地文件。在此示例中,用户将桶“mybucket”同步到本地当前目录。本地当前目录包含文件“test.txt”和“test2.txt”。桶“mybucket”中不包含对象。
aws s3 sync . s3://mybucket
Output:
upload: test.txt to s3://mybucket/test.txt
upload: test2.txt to s3://mybucket/test2.txt
示例 2:将指定 S3 存储桶中的所有 S3 对象同步到另一个存储桶
以下“sync”命令通过复制 S3 对象,将指定前缀和存储桶下的对象同步到另一个指定前缀和存储桶下的对象。如果两个 S3 对象的大小不同、源的最后修改时间比目标的最后修改时间新,或者指定存储桶和前缀目标下不存在该 S3 对象,则需要复制该 S3 对象。
在此示例中,用户将存储桶“mybucket”同步到存储桶“mybucket2”。存储桶“mybucket”包含对象“test.txt”和“test2.txt”。存储桶“mybucket2”不包含任何对象:
aws s3 sync s3://mybucket s3://mybucket2
Output:
copy: s3://mybucket/test.txt to s3://mybucket2/test.txt
copy: s3://mybucket/test2.txt to s3://mybucket2/test2.txt
示例 3:将指定 S3 存储桶中的所有对象同步到本地目录
以下“sync”命令通过下载 S3 对象将指定 S3 存储桶中的文件同步到本地目录。如果 S3 对象的大小与本地文件的大小不同,S3 对象的最后修改时间比本地文件的最后修改时间新,或者 S3 对象在本地目录中不存在,则需要下载 S3 对象。请注意,从 S3 下载对象时,本地文件的最后修改时间会更改为 S3 对象的最后修改时间。在本例中,用户将存储桶“mybucket”同步到当前本地目录。存储桶“mybucket”包含对象“test.txt”和“test2.txt”。当前本地目录中没有文件:
aws s3 sync s3://mybucket .
Output:
download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt
示例 4:将所有本地对象同步到指定桶并删除所有不匹配的文件
以下“sync”命令通过将本地文件上传到 S3,将指定前缀和桶下的对象同步到本地目录中的文件。由于“--delete”参数,任何在指定前缀和桶下存在但在本地目录中不存在的文件都将被删除。在这个示例中,用户将桶“mybucket”同步到本地当前目录。本地当前目录包含文件“test.txt”和“test2.txt”。桶“mybucket”包含对象“test3.txt”:
aws s3 sync . s3://mybucket \
--delete
Output:
upload: test.txt to s3://mybucket/test.txt
upload: test2.txt to s3://mybucket/test2.txt
delete: s3://mybucket/test3.txt
示例 5:将所有本地对象同步到指定的存储桶,除了 .jpg
文件
以下“sync”命令通过将本地文件上传到 S3,将指定前缀和存储桶下的对象同步到本地目录中的文件。由于“--exclude”参数,在 S3 和本地都存在的与模式匹配的所有文件都将从同步中排除。在此示例中,用户将存储桶“mybucket”同步到本地当前目录。本地当前目录包含文件“test.jpg”和“test2.txt”。存储桶“mybucket”包含与本地“test.jpg”大小不同的对象“test.jpg”:
aws s3 sync . s3://mybucket \
--exclude "*.jpg"
Output:
upload: test2.txt to s3://mybucket/test2.txt
示例 6:将所有本地对象同步到指定存储桶,除了.jpg 文件
以下“sync”命令通过下载 S3 对象,将本地目录下的文件同步到指定前缀和存储桶下的对象。此示例使用“--exclude”参数标志从“sync”命令中排除指定的目录和 S3 前缀。在此示例中,用户将本地当前目录同步到存储桶“mybucket”。本地当前目录包含文件“test.txt”和“another/test2.txt”。存储桶“mybucket”包含对象“another/test5.txt”和“test1.txt”:
aws s3 sync s3://mybucket/ . \
--exclude "*another/*"
Output:
download: s3://mybucket/test1.txt to test1.txt
示例 7:在不同区域的桶之间同步所有对象
以下“sync”命令在不同区域的两个桶之间同步文件:
aws s3 sync s3://my-us-west-2-bucket s3://my-us-east-1-bucket \
--source-region us-west-2 \
--region us-east-1
Output:
download: s3://my-us-west-2-bucket/test1.txt to s3://my-us-east-1-bucket/test1.txt
示例 8:同步到 S3 访问点
以下“sync”命令将当前目录同步到访问点(“myaccesspoint”):
aws s3 sync . s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/
Output:
upload: test.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test.txt
upload: test2.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test2.txt
$ aws s3 website help
描述
为存储桶设置网站配置。
Synopsis
website
<S3Uri>
[--index-document <value>]
[--error-document <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
Options
"path"(字符串)
"--index-document"(字符串) 一个后缀,添加到针对网站端点上目录的请求中(例如,如果后缀是 index.html 且您向 samplebucket/images/ 发出请求,返回的数据将是键名为 images/index.html 的对象)。后缀不能为空且不能包含斜杠字符。
"--error-document"(字符串) 当发生 4XX 类错误时使用的对象键名。
全局选项
"--debug"(布尔值)
打开调试日志记录。
"--endpoint-url"(字符串)
使用给定的 URL 覆盖命令的默认 URL。
"--no-verify-ssl"(布尔值)
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接,AWS CLI 都会验证 SSL 证书。此选项覆盖验证 SSL 证书的默认行为。
"--no-paginate"(布尔值)
禁用自动分页。
"--output"(字符串)
命令输出的格式样式。
-
json
-
text
-
table
"--query"(字符串)
用于过滤响应数据的 JMESPath 查询。
"--profile"(字符串)
从您的凭证文件中使用特定的配置文件。
"--region"(字符串)
要使用的区域。覆盖配置/环境设置。
"--version"(字符串)
显示此工具的版本。
"--color"(字符串)
打开/关闭彩色输出。
-
on
-
off
-
auto
"--no-sign-request"(布尔值)
不签署请求。如果提供此参数,将不会加载凭据。
"--ca-bundle"(字符串)
验证 SSL 证书时使用的 CA 证书束。覆盖配置/环境设置。
"--cli-read-timeout"(整数)
最大套接字读取时间(秒)。如果值设置为 0,套接字读取将阻塞且不会超时。默认值为 60 秒。
"--cli-connect-timeout"(整数)
最大套接字连接时间(秒)。如果值设置为 0,套接字连接将阻塞且不会超时。默认值为 60 秒。
示例
注意:要使用以下示例,您必须安装并配置了 AWS CLI。有关更多信息,请参阅《AWS CLI 用户指南》中的入门指南。
除非另有说明,否则所有示例均具有类 Unix 引号规则。这些示例需要根据您终端的引号规则进行调整。请参阅《AWS CLI 用户指南》中的“在字符串中使用引号”。
将 S3 存储桶配置为静态网站
以下命令将名为“my-bucket”的存储桶配置为静态网站。索引文档选项指定了访客导航到网站 URL 时将被定向到的“my-bucket”中的文件。在本例中,存储桶位于 us-west-2 区域,因此该网站将显示在“http://my-bucket.s3-website-us-west-2.amazonaws.com”。
存储桶中出现在静态网站上的所有文件都必须配置为允许访客打开它们。文件权限是与存储桶网站配置分开配置的。
aws s3 website s3://my-bucket/ \
--index-document index.html \
--error-document error.html
有关在 Amazon S3 中托管静态网站的信息,请参阅《Amazon 简单存储服务开发人员指南》中的“托管静态网站”。