怎么可能允许用户在网站上上传图片,但实际的上传完全是在亚马逊的服务器上完成的(以免给自己的服务器带来上传吞吐量的负担)。
有人可以解释这是如何执行的吗?
即用户想要上传图像,而不是将文件流式传输到我的服务器,然后从我的服务器到亚马逊的 s3 服务,它完全绕过我的服务器并将其发送到亚马逊。
怎么可能允许用户在网站上上传图片,但实际的上传完全是在亚马逊的服务器上完成的(以免给自己的服务器带来上传吞吐量的负担)。
有人可以解释这是如何执行的吗?
即用户想要上传图像,而不是将文件流式传输到我的服务器,然后从我的服务器到亚马逊的 s3 服务,它完全绕过我的服务器并将其发送到亚马逊。
CarrierWave可以与CarrierWaveDirect一起使用,将图像直接上传到 S3。这也将允许您在后台作业中处理图像。
但是,如果您想完全消除测功机的上传和处理负担,请查看Cloudinary,它的独特之处在于它在其服务器上进行所有图像处理并为它们提供存储。
如果您使用回形针不能执行以下操作?
在配置中创建一个 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"