Мне нужно закрыть мои подключения к Amazon S3 в моем приложении Rails?

Я переношу приложение rails в Heroku и мне нужно изменить функцию загрузки файлов, чтобы использовать Amazon S3 вместо локального хранилища. Я использую жемчужину aws-s3 и работаю, но просто хочу убедиться, что я делаю все правильно и не создаю проблем для себя.

В моем загружаемом коде у меня есть следующее:

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 ответ

Проверьте здесь документы для API и метод разъединения в частности:

http://amazon.rubyforge.org/doc/classes/AWS/S3/Connection/Management/ClassMethods.html#M000088

Непонятно, нужно ли явно закрывать каждое соединение. Тем не менее, упоминается увеличение производительности, если вы открываете постоянное соединение, это делается по умолчанию.

[...]

* :persistent - Whether to use a persistent connection to the server.

При этом это обеспечивает около двух свернуть

увеличение производительности, но надолго запущенных процессов некоторые брандмауэры могут найти долгоживущую связь подозрительный и закрыть соединение. Если вы столкнулись с ошибками соединения, попробуйте setting: постоянный к false. Значения по умолчанию к true.

licensed under cc by-sa 3.0 with attribution.