如何允许用户在网站上传图像,但实际上传完全在亚马逊的服务器上完成(这样就不会给自己的服务器带来上传吞吐量负担)。
有人可以解释一下这是如何执行的吗?
即。用户想要上传图像,而不是将文件流式传输到我的服务器,然后从我的服务器上传到亚马逊的s3服务,它完全绕过我的服务器并将其发送到亚马逊。
答案 0 :(得分:1)
您可以查看亚马逊提供的these docs。
您可以使用SWF上传程序或this gem来实施该过程。
答案 1 :(得分:0)
CarrierWave可与CarrierWaveDirect一起使用,将图片直接上传到S3。这也允许您在后台作业中处理图像。
但是,如果您想完全消除dynos的上传和处理负担,请查看Cloudinary,这是唯一的,因为它在服务器上执行所有图像处理并为它们提供存储。 / p>
答案 2 :(得分:-1)
如果您使用的回形针无法进行以下操作?
在config
中创建一个s3.yml文件development:
bucket: bucket-dev
access_key_id: xxx
secret_access_key: xxx
test:
bucket: bucket-test
access_key_id: xxx
secret_access_key: xxx
production:
bucket: bucket-pro
access_key_id: xxx
secret_access_key: xxx
#paperclip
has_attached_file :photo,
:styles => {
:thumb=> "100x100#",
:small => "400x400>" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => "/:style/:id/:filename"