【问题标题】:CloudCube and Boto3 - list content of the ObjectsCloudCube and Boto3 - list content of the Objects
【发布时间】:2022-12-28 01:26:12
【问题描述】:

I am encountering you with the request for help with listing the objects in my CloudCube bucket. I am developing a Django application hosted on Heroku. I am using the CloudCube add-on for persistent storage. CloudCube is running on AWS S3 Bucket and CloudCube provides private Key/Namespace in order to access my files. I use the boto3 library to access the bucket and everything works fine when I want to upload/download the file; however, I am struggling with the attempts to list objects in that particular bucket with the CloudCube prefix key. On any request, I receive AccessDennied Exception.

To access the bucket I use the following implementation:

s3_client = boto3.client('s3', aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
                             aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
                             endpoint_url=settings.AWS_S3_ENDPOINT_URL, region_name='eu-west-1')

s3_result = s3_client.list_objects(Bucket=settings.AWS_STORAGE_BUCKET_NAME, Prefix=settings.CLOUD_CUBE_KEY)
    if 'Contents' not in s3_result:
        return []

    file_list = []
    for key in s3_result['Contents']:
        if f"{username}/{mode.value}" in key['Key']:
            file_list.append(key['Key'])

As a bucket name, I am using the prefix in the URI that aims to the CloudCube bucket on the AWS according to their documentation: https://BUCKETNAME.s3.amazonaws.com/CUBENAME. CUBENAME is used then as a Prefix Key.

Does anyone have clue what do I miss?

Thank you in advance!

    标签: python django amazon-s3 heroku boto3


    【解决方案1】:

    According to CloudCube's documentation, you need a trailing slash on the prefix to list the directory.

    So you should update your code like this to make it work:

    s3_result = s3_client.list_objects(Bucket=settings.AWS_STORAGE_BUCKET_NAME, Prefix=f'{settings.CLOUD_CUBE_KEY}/')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 2022-12-26
      • 2022-12-02
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多