簡體   English   中英

如何使boto3連接到默認工作文件夾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM