将存储桶文件复制到本地磁盘时出现问题

Issues copying a bucketfile to local disk

我已经 运行 完成了我认为我需要做的整个序列,但是我在尝试在本地复制我的文件时仍然收到 invalid argument type error。我在这里做错了什么?

vagrant@dev:~$ aws s3 ls s://bucketname-vagrant

A client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist

vagrant@dev:~$ aws s3 ls bucketname-vagrant
2015-03-30 14:06:02  285061467 or_vagrant.sql.tar.gz
2015-03-30 13:55:01  102642228 or_vagrant.sql.xz

vagrant@dev:~$ aws s3 ls bucketname-vagrant/or_vagrant.sql.xz
2015-03-30 13:55:01  102642228 or_vagrant.sql.xz
vagrant@dev:~$ aws s3 cp bucketname-vagrant/or_vagrant.sql.xz /tmp/

usage: aws s3 cp <LocalPath> <S3Path> or <S3Path> <LocalPath> or <S3Path> <S3Path>
Error: Invalid argument type

似乎 S3 已被弃用,取而代之的是 s3api,这行得通

aws s3api get-object --bucket bucketname-vagrant --key or_vagrant.sql.tar.gz or_vagrant.sql.tar.gz

s3 未弃用。 s3 and s3api are on different tierss3api 是 API 级别,而 s3 是高级命令。

ls

问题是您在第一个命令中 s3:// 有错字。

$ aws s3 ls s://bucketname-vagrant
A client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist

我可以用自己的存储桶重现该错误。这有效:

$ aws s3 ls s3://bucketname-vagrant

#cp

$ aws s3 cp bucketname-vagrant/or_vagrant.sql.xz /tmp/

这里的问题是 aws-cli 不知道您是否有一个名为 bucketname-vagrant 的本地目录。您可以使用 s3:// 语法修复该问题:

$ aws s3 cp s3://bucketname-vagrant/or_vagrant.sql.xz /tmp/

同样,我在本地复制了它。

$ aws s3 cp bucket/test.txt /tmp/
usage: aws s3 cp <LocalPath> <S3Path> or <S3Path> <LocalPath> or <S3Path> <S3Path>
Error: Invalid argument type

$ aws s3 cp s3://bucket/test.txt /tmp/
download: s3://bucket/test.txt to /tmp/keybase.txt