[英]how to make boto3 connect to default working folder
我的 s3 帳戶只在特定文件夾中工作,例如:'A/B/C/'
當我使用以下代碼時,我仍然遇到拒絕訪問問題:
from boto3.session import Session
session = Session(aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
s3 = session.client('s3')
prefix = 'A/B/C/'
for x in s3.list_objects_v2(Bucket=aws_bucket, Prefix=prefix):
print(x)
我也試過startAfter,仍然無法訪問拒絕:
from boto3.session import Session
session = Session(aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
s3 = session.client('s3')
start_after = 'A/B/C/'
for x in s3.list_objects_v2(Bucket=aws_bucket, StartAfter=start_after):
print(x)
這是錯誤:
Traceback (most recent call last):
File "debug5.py", line 39, in <module>
for x in s3.list_objects_v2(Bucket=aws_bucket, StartAfter=start_after):
File "/Users/ken/PythonVM3/lib/python3.7/site-packages/botocore/client.py", line 316, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/ken/PythonVM3/lib/python3.7/site-packages/botocore/client.py", line 635, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
Boto3 提供了一個功能,我們可以連接到默認工作文件夾:A/B/C?
注意:我可以使用 Cyberduck 訪問某個文件夾:A/B/C 這意味着 AWS Config 端是預期的
確保您已將具有以下權限(S3 完全權限)的 IAM 策略附加到您的 IAM 用戶。 您可以根據您的要求授予權限。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.