Python 3 Boto 3, AWS S3: Get object URL

后端 未结 4 2123
Happy的楠姐
Happy的楠姐 2020-12-19 00:38

I need to retrieve an public object URL directly after uploading a file, this to be able to store it in a database. This is my upload code:

   s3 = boto3.res         


        
4条回答
  •  臣服心动
    2020-12-19 00:58

    There's no simple way but you can construct the URL from the region where the bucket is located (get_bucket_location), the bucket name and the storage key:

    bucket_name = "my-aws-bucket"
    key = "upload-file"
    
    s3 = boto3.resource('s3')
    bucket = s3.Bucket(bucket_name)
    bucket.upload_file("upload.txt", key)
    location = boto3.client('s3').get_bucket_location(Bucket=bucket_name)['LocationConstraint']
    url = "https://s3-%s.amazonaws.com/%s/%s" % (location, bucket_name, key)
    

提交回复
热议问题