我是否需要在Rails应用程序中关闭与Amazon S3的连接?

时间:2010-08-23 04:56:42

标签: ruby-on-rails ruby amazon-s3 uploading

我正在将我的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连接的幕后使用的协议没有很好的理解,但我并不特别想 - 我只是想确保它能够正常工作而不会造成问题。

1 个答案:

答案 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。默认   为真。