4

RailsアプリをHerokuに移行しているので、ローカルストレージの代わりにAmazonS3を使用するようにファイルアップロード機能を変更する必要があります。私はaws-s3gemを使用しており、これは機能していますが、問題が発生しないように正しく実行していることを確認したいだけです。

アップロードコードには次のものがあります。

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への接続で舞台裏で使用されているプロトコルについてはよく理解していませんが、特に知りたくはありません。これが問題なく機能することを確認したいだけです。

4

1 に答える 1

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.

これをオンにすると、約2倍になります

パフォーマンスは向上しますが、長時間実行されるプロセスの場合、一部のファイアウォールは、長期間有効な接続が疑わしいと判断し、接続を閉じる可能性があります。接続エラーが発生した場合は、:persistentをfalseに設定してみてください。デフォルトはtrueです。

于 2010-08-23T05:12:06.413 に答える