我正在将我的rails应用程序迁移到Heroku,需要更改我的文件上传功能以使用Amazon S3而不是本地存储。我正在使用aws-s3 gem并且有这个工作,但只是想确保我做的事情正确而不是为我自己创造问题。
在我的上传代码中,我有以下内容;
AWS::S3::Base.establish_connection!(
:access_key_id => 'Not telling',
:secret_access_key => 'Really not telling'
)
AWS::S3::S3Object.store("#{self.name}", upload_file_field.read, 'my_bucket')
这完美无缺,但我担心我会在服务器开放时留下某种连接。完成后我是否需要关闭连接(例如AWS::S3::Base.disconnect
)或者我可以保留原样吗?
显然,我对与S3连接的幕后使用的协议没有很好的理解,但我并不特别想 - 我只是想确保它能够正常工作而不会造成问题。
答案 0 :(得分:2)
点击此处查看API的文档,特别是断开连接方法:
http://amazon.rubyforge.org/doc/classes/AWS/S3/Connection/Management/ClassMethods.html#M000088
您是否必须明确关闭每个连接尚不清楚。但是,如果打开持久连接,它确实提到了性能提升,无论如何这都是默认完成的。
[...]
* :persistent - Whether to use a persistent connection to the server.
启用此功能可提供大约两个 折
性能提升但很长时间 运行进程可能会有一些防火墙 找到长寿的联系 可疑并关闭连接。 如果遇到连接错误,请尝试 设置:持久性为false。默认 为真。