如何使用python boto3将文件上载到aws S3 bucket中的文件夹

如何使用python boto3将文件上载到aws S3 bucket中的文件夹,python,amazon-web-services,amazon-s3,boto3,Python,Amazon Web Services,Amazon S3,Boto3,如何访问S3 bucket中的文件夹对象。如何使用python boto3访问S3 bucket中的文件夹。 代码适用于S3 bucket中的文件夹,但适用于S3 bucket中的文件夹。小原则信息:S3没有文件夹,它是对象存储。您在UI中看到的类似文件夹的结构是为了方便 有关上载,请参见小原则信息:S3没有文件夹,它是对象存储。您在UI中看到的类似文件夹的结构是为了方便 如果我想上传以下目录,请参见上传: folder_root ├── a │   └── f ├── b │   ├── d

如何访问S3 bucket中的文件夹对象。如何使用python boto3访问S3 bucket中的文件夹。
代码适用于S3 bucket中的文件夹,但适用于S3 bucket中的文件夹。小原则信息:S3没有文件夹,它是对象存储。您在UI中看到的类似文件夹的结构是为了方便


有关上载,请参见小原则信息:S3没有文件夹,它是对象存储。您在UI中看到的类似文件夹的结构是为了方便


如果我想上传以下目录,请参见上传:

folder_root
├── a
│   └── f
├── b
│   ├── d
│   └── e
└── c
    └── x

您需要上传名为
a/f
b/d
b/e
c/x
的单独文件。另一个答案指出,S3中没有目录的概念,它是一个“平面对象存储”。如果要创建目录的外观,文件的名称(或键)必须是您尝试创建的目录结构。

如果要上载以下目录:

folder_root
├── a
│   └── f
├── b
│   ├── d
│   └── e
└── c
    └── x

您需要上传名为
a/f
b/d
b/e
c/x
的单独文件。另一个答案指出,S3中没有目录的概念,它是一个“平面对象存储”。如果要创建目录的外观,文件的名称(或键)必须是您试图创建的目录结构。

如果我理解正确。。我在python3脚本中遇到了这个问题。基本上,您需要将s3存储桶和文件名传递给boto3函数。使此文件名包含文件夹,并用正斜杠分隔它们。而不是只传递文件名并尝试将文件夹作为单独的参数传递

因此,如果您拥有MyS3Bucket,并且希望将file.txt上传到MyS3Bucket中的MyFolder,则将
文件\u name=“MyFolder”+“/”+“file.txt”
作为参数传递给上传函数。 如果需要代码片段,请告诉我

即使S3存储桶中没有该文件夹,boto3也会动态地为您创建它。这很酷,因为您可以在s3中基于文件夹授予访问权限,而不仅仅是一次授予整个bucket


祝你好运

如果我理解正确的话。。我在python3脚本中遇到了这个问题。基本上,您需要将s3存储桶和文件名传递给boto3函数。使此文件名包含文件夹,并用正斜杠分隔它们。而不是只传递文件名并尝试将文件夹作为单独的参数传递

因此,如果您拥有MyS3Bucket,并且希望将file.txt上传到MyS3Bucket中的MyFolder,则将
文件\u name=“MyFolder”+“/”+“file.txt”
作为参数传递给上传函数。 如果需要代码片段,请告诉我

即使S3存储桶中没有该文件夹,boto3也会动态地为您创建它。这很酷,因为您可以在s3中基于文件夹授予访问权限,而不仅仅是一次授予整个bucket


祝你好运

你能澄清一下你想要达到的目标吗?您希望“访问文件夹”的目的是什么?您正在做的哪些工作失败了?请共享您尝试过的代码。每次运行lambda函数时,它都会创建一个json文件。我想将该json文件存储在S3 bucket中的一个文件夹中。我的S3 bucket名称是“bucketstore”…bucket中的文件夹是“jsonstore”,我尝试了“bucketstore/jsonstore”,它显示了无效的bucket名称。您能澄清一下您想要实现的目标吗?您希望“访问文件夹”的目的是什么?您正在做的哪些工作失败了?请共享您尝试过的代码。每次运行lambda函数时,它都会创建一个json文件。我想将该json文件存储在S3 bucket中的一个文件夹中。我的S3存储桶名称是“bucketstore”…存储桶中的文件夹是“jsonstore”,我尝试了“bucketstore/jsonstore”,它显示了无效的存储桶名称