如何使用boto3从URL访问S3存储桶?

pib*_*190 5 amazon-s3 amazon-web-services boto3

我已获得访问S3存储桶的权限:

S3基本路径:s3:// folder1 / folder2 / *

使用IAM用户帐户:

arn:aws:iam :: <帐户>:user / <用户名>

我尝试了以下方法,但是没有运气。

import boto3
client = boto3.client(
    's3',
    aws_access_key_id='****',
    aws_secret_access_key='****'
)
obj1 = client.get_object("folder1/folder2/*") #TypeError
obj2 = boto3.resource("folder1/folder2/*") # DataNotFoundError
Run Code Online (Sandbox Code Playgroud)

关于此的任何帮助将不胜感激。谢谢!

Vor*_*Vor 7

s3路径由bucket和object组成,格式如下:

s3://<Bucket>/<Key>
Run Code Online (Sandbox Code Playgroud)

您可以使用以下表达式将“s3_key”拆分为存储桶和密钥:

bucket, key = s3_key.split('/',2)[-1].split('/',1)
Run Code Online (Sandbox Code Playgroud)

因此,要从路径 s3://folder1/folder2 访问对象,您将执行以下操作:

import boto3
client = boto3.client('s3')
client.get_object(Bucket='folder1', Key='folder2')
Run Code Online (Sandbox Code Playgroud)