Amazon web services 如何使用boto3从url访问S3 bucket?

Amazon web services 如何使用boto3从url访问S3 bucket?,amazon-web-services,amazon-s3,boto3,Amazon Web Services,Amazon S3,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/*") #T

我已获得访问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

任何有关这方面的帮助都将不胜感激。谢谢

s3路径由桶和对象组成,形式如下:

s3://<Bucket>/<Key>
因此,要从路径s3://folder1/folder2访问对象,您需要执行以下操作:

import boto3
client = boto3.client('s3')
client.get_object(Bucket='folder1', Key='folder2')

如果我可以访问s3://folder1/folder2/folder3/*而不是s3://folder1/folder2/*,那该怎么办?那么folder2/folder3/*是您的密钥以下替代方案不起作用
1)Key=“folder2/folder3”2)Key=“folder2/folder3/”3)Key=“folder2/folder3/*”
但是在aws cli上,以下命令可以完美地工作:
aws s3 ls s3://folder1/folder2/folder3/
aws s3 ls
正在列出对象。这不是
get\u object()
的目的,所以。。。是的,这根本不起作用。正如sqlbot指出的,get_object()不适合列出。Try list_objects()使用“prefix”参数将文件夹指定为前缀。您是尝试检索对象,还是列出存储桶的内容?
import boto3
client = boto3.client('s3')
client.get_object(Bucket='folder1', Key='folder2')