当我把一个带有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中会更好。
如果你使用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