相关疑难解决方法(0)

使用Amazon s3 boto库,如何获取已保存密钥的URL?

我正在保存一个桶的密钥:

    key = bucket.new_key(fileName)
    key.set_contents_from_string(base64.b64decode(data))
    key.set_metadata('Content-Type', 'image/jpeg')
    key.set_acl('public-read')
Run Code Online (Sandbox Code Playgroud)

保存成功后,如何访问新创建的文件的URL?

python amazon-s3 boto

54
推荐指数
3
解决办法
4万
查看次数

使用Boto3上传到Amazon S3并返回公共网址

我试图使用Boto3将文件上传到s3并将上传的文件公开并将其作为网址返回.

class UtilResource(BaseZMPResource):
class Meta(BaseZMPResource.Meta):
    queryset = Configuration.objects.none()
    resource_name = 'util_resource'
    allowed_methods = ['get']

def post_list(self, request, **kwargs):

    fileToUpload = request.FILES
    # write code to upload to amazone s3
    # see: https://boto3.readthedocs.org/en/latest/reference/services/s3.html


    self.session = Session(aws_access_key_id=settings.AWS_KEY_ID,
                  aws_secret_access_key=settings.AWS_ACCESS_KEY,
                  region_name=settings.AWS_REGION)

    client = self.session.client('s3')
    client.upload_file('zango-static','fileToUpload')


    url = "some/test/url"
    return self.create_response(request, {
        'url': url // return's public url of uploaded file 
    })
Run Code Online (Sandbox Code Playgroud)

我搜索了整个文档,我找不到任何链接,描述如何做到这一点,有人可以解释或提供任何资源,我可以找到灵魂?

django-models amazon-s3 boto3

24
推荐指数
3
解决办法
2万
查看次数

使用 boto3 获取公共可访问 s3 对象的 url,无需过期或安全信息

运行如下一行:

s3_obj = boto3.resource('s3').Object(bucket, key)
s3_obj.meta.client.generate_presigned_url('get_object', ExpiresIn=0, Params={'Bucket':bucket,'Key':key})
Run Code Online (Sandbox Code Playgroud)

产生如下结果:

https://my-bucket.s3.amazonaws.com/my-key/my-object-name?AWSAccessKeyId=SOMEKEY&Expires=SOMENUMBER&x-amz-security-token=SOMETOKEN
Run Code Online (Sandbox Code Playgroud)

对于具有 ACL 的 s3 对象public-read,所有 GET 参数都是不必要的。

我可以作弊并使用重写 URL 而不使用 GET 参数,但这感觉不干净且很糟糕。

如何使用 boto3 只向我提供公共链接,例如https://my-bucket.s3.amazonaws.com/my-key/my-object-name?换句话说,我如何跳过 中的签名步骤generate_presigned_url?我没有看到任何类似generated_unsigned_url函数的东西。

python boto3

6
推荐指数
1
解决办法
4843
查看次数

标签 统计

amazon-s3 ×2

boto3 ×2

python ×2

boto ×1

django-models ×1