我想从我的s3 下载一个目录.
当我需要一个文件时,s3管理控制台(aws web控制台)允许我下载它,但是当一个目录时,我必须使用aws-cli,如:
$ aws s3 cp s3://mybucket/mydirectory/ . --recursive
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法s3://mybucket/mydirectory/从s3管理控制台获取s3 uri()?
它的URL可用,但它与aws-cli所需的s3 URI略有不同.我找不到任何菜单来获取uri.
先感谢您!
我正在尝试设置AWS CLI工具,并按照说明进行操作 http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/set-up-ec2-cli-linux.html#setting_up_ec2_command_linux上的
然而,在所有的步骤,并且设置了后我AWS_ACCESS_KEY和AWS_SECRET_KEY,我得到
$ ec2-describe-regions
Client.UnauthorizedOperation: You are not authorized to perform this operation. (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: 55f02cc4-2e9f-4a0a-8b55-46bcc1973f50)
Run Code Online (Sandbox Code Playgroud)
然后我尝试重新生成新凭据,但仍然得到相同的错误.我似乎无法找到有关此问题的其他任何人的信息.我尝试使用-O和传递密钥-W,但这也不起作用.
知道我可能做错了什么吗?
有没有办法强制CloudFormation删除非空的S3 Bucket?
我试图嵌入访问和密钥以及aws cli.例如
aws ec2 describe-instances --aws-access-key <access_key> --aws-secret-key <secret_key>
Run Code Online (Sandbox Code Playgroud)
还分别尝试使用-o和-w选项进行访问和密钥.它说:未知选项aws-access-key和aws-secret-key
我有一个100%空的S3桶.从未在存储桶上启用版本控制.但是,我仍然无法删除桶.我通过Console和CLI工具尝试过.在控制台上它只是说"错误"没有错误消息.从cli和api它告诉我:"调用DeleteBucket操作时发生错误(BucketNotEmpty):你试图删除的存储桶不为空".我尝试了以下所有方法:
aws s3 rb s3://<bucket_name> --force - > BucketNotEmpty
aws s3 rm s3://<bucket_name> --recursive - >没有输出(因为它已经是空的)
aws s3api list-object-versions --bucket <bucket_name> - >无输出(因为从未启用版本控制)
aws s3api list-multipart-uploads --bucket <bucket_name> - >没有输出
aws s3api list-objects --delimiter=/ --prefix= --bucket <bucket_name> - >没有输出(因为它是空的)
使用aws-cli 1.3.6我试图用名称和状态获得一个简单的ec2实例表.我一直在查看--query和JMESpath文档,我已经能够选择Map的"Value"项,其中"Key"项等于Name.这对于获取实例名称很有用.因此,下面的代码似乎工作
aws ec2 describe-instances --output table --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value'
Run Code Online (Sandbox Code Playgroud)
并提供这个:
-------------------
|DescribeInstances|
+-----------------+
| Name1 |
| Name2 |
+-----------------+
Run Code Online (Sandbox Code Playgroud)
但是,如果我想添加状态,事情就会像我预期的那样得到.运用
aws ec2 describe-instances --output table --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value,State.Name]'
Run Code Online (Sandbox Code Playgroud)
提供
-------------------
|DescribeInstances|
+-----------------+
| Name1 |
| stopped |
| Name2 |
| stopped |
+-----------------+
Run Code Online (Sandbox Code Playgroud)
而不是具有名称和状态的两列表.
如果我们将输出转换为JSON,我们可以看到Tags选项返回一个列表(单元素列表),这可能是问题所在:
[
[
[
"Name1"
],
"stopped"
],
[
[
"Name2"
],
"stopped"
]
]
Run Code Online (Sandbox Code Playgroud)
我无法通过选择第一个元素将此列表转换为标量.这个,不起作用.返回一个空列表作为名称.
aws ec2 describe-instances --output json --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[0],State.Name]'
Run Code Online (Sandbox Code Playgroud)
和此一样
aws ec2 describe-instances --output json --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[][0],State.Name]'
Run Code Online (Sandbox Code Playgroud)
我解决这个问题的唯一方法是通过join函数.因为我只期待一个元素,所以可以,但我似乎有点hacky.
aws ec2 …Run Code Online (Sandbox Code Playgroud) aws s3 cp "dist/myfile" "s3://my-bucket/production/myfile"
Run Code Online (Sandbox Code Playgroud)
它总是复制myfile到s3 - 我想复制文件,如果它不存在,否则抛出错误.我怎么能这样做?或者至少我如何使用awscli检查文件是否存在?
我已经尝试通过向我的用户提供AmazonEC2ContainerRegistryFullAccess策略来遵循关于为我的用户设置ECR授权的AWS说明.
但是,当我尝试在我的电脑上运行时,aws ecr get-login我收到一个错误,我没有得到许可.
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::ACCOUNT_NUMBER:user/MY_USER is not authorized to perform: ecr:GetAuthorizationToken on resource: *
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我可以使用以下命令成功将文件上传到私有 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
我有一个运行良好的 lambda 函数,但我想导入一个包,所以我用 index.js 创建了一个目录并安装了我的 npm 包。
然后创建此文件夹的 zip 并使用上传
aws lambda 更新函数代码 --function-name smrtfac-test --zip-file fileb://lambda.zip
但现在我收到这个错误
index.handler is undefined or not exported
Run Code Online (Sandbox Code Playgroud)
原因可能是什么?myindex.js和node_modules在同一个目录中。