Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 当使用boto3从was s3存储桶下载文件时,没有这样的文件或目录_Amazon Web Services_Amazon S3_Boto3 - Fatal编程技术网

Amazon web services 当使用boto3从was s3存储桶下载文件时,没有这样的文件或目录

Amazon web services 当使用boto3从was s3存储桶下载文件时,没有这样的文件或目录,amazon-web-services,amazon-s3,boto3,Amazon Web Services,Amazon S3,Boto3,我想从aws s3存储中下载整个bucket“my bucket”,并将其保存在路径“/resources/my bucket”中。因此,我将执行以下操作,导入boto3,使用access\u key\u id和secret\u access\u key创建一个资源,然后迭代bucket中的所有对象,并使用download\u file api调用下载它们: import boto3 s3 = boto3.resource( service_name="s3", region

我想从aws s3存储中下载整个bucket“my bucket”,并将其保存在路径“/resources/my bucket”中。因此,我将执行以下操作,导入boto3,使用access\u key\u id和secret\u access\u key创建一个资源,然后迭代bucket中的所有对象,并使用download\u file api调用下载它们:

import boto3
s3 = boto3.resource(
service_name="s3",
region_name="us-west-1",
aws_access_key_id="AWUHWIEDFB",
aws_secret_access_key="AOIERJGOERWHJO"
)

for o in s3.Bucket("my-bucket").objects.all():
    filename = o.key
    s3.Bucket("my-bucket").download_file(Key=filename, Filename="./resources/my-bucket/" + filename)
s3 bucket my bucket本身有一个名为“input”的文件夹,其中只有png和jpg文件,在根路径中还有另一个.pt文件

但我得到了一个错误:

FileNotFoundError: [Errno 2] No such file or directory: './resources/my-bucket/input/.F89bdcAc'
我不知道.F89bdcAc是什么意思,也不知道为什么boto3试图找到那个文件


如何解决这个问题?

请参阅本帖的答案:


它将bucket中目录的处理与文件(键)的处理分开。系统上的目录是使用os.makedirs动态创建的,您将不会再遇到此错误。您应该更改您的访问密钥/密码

参见本帖的答案:


它将bucket中目录的处理与文件(键)的处理分开。系统上的目录是使用os.makedirs动态创建的,您将不会再遇到此错误。您应该更改您的访问密钥/密码

请检查是否需要根据需要创建本地子文件夹,如果任何对象具有键
folder1/folder2/
的对象具有键
folder1/folder2/cat.png
。旁注:永远不需要在代码中放入访问凭据(这对安全性有害)。如果代码在AmazonEC2实例上运行,只需将IAM角色分配给该实例即可。如果代码在您自己的计算机上运行,使用
aws configure
命令将凭据存储在本地配置文件中。请检查是否需要根据需要创建本地子文件夹,如果任何对象具有键
folder1/folder2/
的对象的键
folder1/folder2/cat.png
。旁注:永远不需要设置访问权限代码中的凭据(这对安全性有害)。如果代码在AmazonEC2实例上运行,只需将IAM角色分配给该实例即可。如果代码在您自己的计算机上运行,请使用
aws configure
命令将凭据存储在本地配置文件中。