AWS get-object 不创建本地目录
AWS get-object doesn't create local directories
我正在尝试从 S3 兼容存储下载文件,我正在 运行 执行以下命令:
aws s3api get-object --endpoint-url https://my.endpoint.url/ --bucket my_bucket --key mailouts/m3/ma2.png mailouts/m3/ma2.png
然后我得到错误:
[Errno 2] No such file or directory: u'mailouts/m3/ma2.png'
但是,当我运行以下命令时:
aws s3api get-object --endpoint-url https://my.endpoint.url/ --bucket my_bucket --key mailouts/m3/ma2.png ma2.png
我在当前目录中得到了 ma2.png
文件。所以看起来 aws cli
无法创建中间目录 mailouts/m3
有没有办法强制aws cli
创建本地目录?
不是在检索单个文件时。只要目录中至少有一个文件,AWS S3 CLI 中的 sync 命令就会在目标中创建目录。如果您不想同步整个目录树,您可以使用 --include
和 --exclude
选项来缩小同步文件的范围(甚至缩小到 ma2.png
)。
S3 存储桶没有 directories/folders。当你有类似的东西时:
mailouts/m3/ma2.png
这只是您 S3 存储桶中的一个文件名。如果要在./mailouts/m3中保存ma2.png,则必须解析对象名称并自己创建中间folders/directories。
最好的方法是使用aws s3 cp
命令,它会创建所需的文件夹。
我正在尝试从 S3 兼容存储下载文件,我正在 运行 执行以下命令:
aws s3api get-object --endpoint-url https://my.endpoint.url/ --bucket my_bucket --key mailouts/m3/ma2.png mailouts/m3/ma2.png
然后我得到错误:
[Errno 2] No such file or directory: u'mailouts/m3/ma2.png'
但是,当我运行以下命令时:
aws s3api get-object --endpoint-url https://my.endpoint.url/ --bucket my_bucket --key mailouts/m3/ma2.png ma2.png
我在当前目录中得到了 ma2.png
文件。所以看起来 aws cli
无法创建中间目录 mailouts/m3
有没有办法强制aws cli
创建本地目录?
不是在检索单个文件时。只要目录中至少有一个文件,AWS S3 CLI 中的 sync 命令就会在目标中创建目录。如果您不想同步整个目录树,您可以使用 --include
和 --exclude
选项来缩小同步文件的范围(甚至缩小到 ma2.png
)。
S3 存储桶没有 directories/folders。当你有类似的东西时:
mailouts/m3/ma2.png
这只是您 S3 存储桶中的一个文件名。如果要在./mailouts/m3中保存ma2.png,则必须解析对象名称并自己创建中间folders/directories。
最好的方法是使用aws s3 cp
命令,它会创建所需的文件夹。