主动存储上传到S3的加密。如何删除加密并将文件保存在存储空间中。

问题描述 投票:0回答:1

当我把一个带有API multipart的文件上传到rails服务器上。Rails服务器将文件上传到s3。但是当我进入s3时,文件被加密了,这是我不想要的。

另外,当我从jbuilder中获取URL时,我发现

json.url Rails.application.routes.url_helpers.rails_blob_url(document.doc) 

我得到的URL是rails路径,它重定向到S3图片,并有一个键来显示图片。

如果我可以把S3链接直接放在文件URL中会更好。

ruby-on-rails amazon-s3 rails-activestorage
1个回答
0
投票

如果你使用Rails的主动存储,并且不想在默认情况下加密文件,你需要更改 storage.yml 到这样的东西。

amazon:
  service: S3
  bucket: somebucketname
  upload:
    server_side_encryption: nil

或者如果你使用的是 aws-sdk-s3 创业板,这里是官方指南的链接。aws-sdk-s3

此外,你还可以从AWS中更改现有的文件加密。这里是文档。

对于URL部分,你可以调用 object.images[0].service_url 这将返回类似于 https://yourbucketname.s3.eu-central-1.amazonaws.com/yr2r6bo1ai1g9yavg7p9480ptdy4?response-content-disposition=inline%3B%20filename%3D%22images-museum_5_3.png%22%3B%20filename%2A%3DUTF-8%27%27images-museum_5_3.png&response-content-type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJJWMS7WXXZREOOCQ%2F20200413%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20200413T123825Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=14bf4d26d9b3f3c98c29d84c647fc6fa88d903e157a0d41e0ad209937ffaf92b

您可以将第一部分存储为对象URL。它不会改变URL的一部分。

那部分是 https://yourbucketname.s3.eu-central-1.amazonaws.com/yr2r6bo1ai1g9yavg7p9480ptdy4

© www.soinside.com 2019 - 2024. All rights reserved.