Nam*_*yen 27 amazon-s3 amazon-web-services aws-cli
我可以使用以下命令成功将文件上传到私有 S3存储桶:
aws s3 cp "myfile.txt" "s3://myfolder/myfile.txt" --region=us-east-1 --output=json
我想发出一个AWS CLI命令来返回myfile.txt的临时URL下载,有谁知道怎么做?
我google了,看起来我必须做一些签名来获取临时URL,例如:http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
Chi*_*and 23
aws cli现在支持presign命令.你可以跑
$ aws s3 presign s3://test-bucket/test-file.txt
https://test-bucket/test-file.txt?Expires=1499152189&Signature=some-sha
Run Code Online (Sandbox Code Playgroud)
这将生成一个URL,您可以与任何人共享该文件,以便在3600秒内下载该文件.
你可以改变时间段 --expires-in
$ aws s3 presign s3://test-bucket/test-file.txt --expires-in 600
Run Code Online (Sandbox Code Playgroud)
生成的URL将在10分钟后到期.
您可以在aws cli文档中阅读有关presign的更多信息.
Nam*_*yen 12
我用Google搜索并决定编写此脚本以帮助我为S3生成singed-url.
https://github.com/gdbtek/aws-tools
Ric*_*ico 10
您可以使用以下URL格式:
https://<bucket-name>.s3.amazonaws.com/<object or key name>
Run Code Online (Sandbox Code Playgroud)
或旧式:
https://s3.amazonaws.com/<bucket-name>/<object or key name>
Run Code Online (Sandbox Code Playgroud)
要使其可访问,您需要允许公共访问您的对象或附加适当的存储桶策略.
例如,以下存储桶策略显示对存储桶zzzyyy对象'yyyeee'的公共访问权限
$ aws s3 get-object-acl --bucket zzzyyy --key yyyeee
{
"Owner": {
"DisplayName": "owner",
"ID": "Some hash of owner"
},
"Grants": [
{
"Grantee": {
"DisplayName": "owner",
"ID": "Some hash of owner"
},
"Permission": "READ"
},
{
"Grantee": {
"DisplayName": "owner",
"ID": "Some hash of owner"
},
"Permission": "WRITE"
},
{
"Grantee": {
"DisplayName": "owner",
"ID": "Some hash of owner"
},
"Permission": "READ_ACP"
},
{
"Grantee": {
"DisplayName": "owner",
"ID": "Some hash of owner"
},
"Permission": "WRITE_ACP"
},
{
"Grantee": {
"URI": "http://acs.amazonaws.com/groups/global/AllUsers"
},
"Permission": "READ"
},
{
"Grantee": {
"URI": "http://acs.amazonaws.com/groups/global/AllUsers"
},
"Permission": "READ_ACP"
}
]
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看存储桶策略的示例:
http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html
您也可以使用S3控制台,如下所示:

| 归档时间: |
|
| 查看次数: |
30168 次 |
| 最近记录: |