首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式取消对aws s3中文件的加密

以编程方式取消对aws s3中文件的加密
EN

Stack Overflow用户
提问于 2017-05-28 16:00:09
回答 1查看 1.6K关注 0票数 7

我正在通过aws code build执行安卓系统的构建。默认情况下,生成的apk文件是与server side encryption (aws-kms)一起应用的,我可以通过取消选择ASW-KMS单击s3桶中的下面所示,手动取消加密设置。

它提供了以下弹出窗口

在这里,手动选择None选项将使链接可下载。我想以编程的方式实现

我已经尝试过添加权限,如前面提到的here。此外,还对python boto3做了一些实验。然而,到目前为止还没有取得任何成功。提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-30 15:17:37

好的,我找到了一个解决方案,。在创建加密(服务器端aws )工件并上传到s3 (作为aws代码构建的一部分)之后,使用'ACL':'public-read'创建文件的副本。以下是以下步骤:

代码语言:javascript
复制
s3 = boto3.resource('s3',aws_access_key_id='<YOUR ACCESS KEY>', aws_secret_access_key='<YOUR SECRET ACCESS KEY>', region_name = 'ap-southeast-1', config=Config(signature_version='s3v4'))

config=Config(signature_version='s3v4')__part是访问加密文件的诀窍。

代码语言:javascript
复制
copy_source = {'Bucket': 'SOURCE BUCKET','Key':'test/app-debug.apk'}
s3.meta.client.copy(copy_source, 'DESTINATION BUCKET', 'app-debug.apk', {'ACL':'public-read'})

从S3中,您将获得一个可下载的URL。

或者,您可以直接从加密的S3项获得可下载链接,而无需将其复制到另一个桶中。然而,问题是s3v4 encryption的最长期限为7天。因此,这个链接最多只能工作7 days.The,下面是相同的步骤:

  1. s3_client = boto3.client('s3',aws_access_key_id='<YOUR ACCESS KEY>', aws_secret_access_key='<YOUR SECRET KEY>', region_name='ap-southeast-1', config=Config(signature_version='s3v4'))
  2. url = s3_client.generate_presigned_url(ClientMethod='get_object', Params={'Bucket':'SOURCE BUCKET', 'Key':'test/app-debug.apk'})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44229317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档