Вопрос

Я в настоящее время использую CARACLEWAVE с туманом для хранения и загрузки изображений с помощью ведра S3, но изображения нагрузки намного медленнее, чем они должны.Эти изображения загружаются практически мгновенно, когда хранятся как часть приложения - но хранится с помощью Covanerwave и Fog, требуется несколько секунд.

Это проблема с моим настройкой S3 или несущей ватами / туманом?Мой конфигурация Corerwave является следующим:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',                        # required
    :aws_access_key_id      => '***',                        # required
    :aws_secret_access_key  => '***',                        # required
  }

  config.cache_dir = "#{Rails.root}/tmp/uploads"                  # To let CarrierWave work on heroku

  config.fog_directory  = 'bucketname'                     # required NB: having '.' in the bucket name creates an untrusted certificate
  config.fog_public     = false                                   # optional, defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}
end
.

У меня есть мой ведр S3, настроенный для США, и я расположен в Австралии, так что может представлять несколько проблем - но мое приложение Heroku также настроен на США, и он загружает одинаковые изображения, когда они быстрохранится как часть самого приложения.Возможно, AWS не лучшее решение?

Во всяком случае любые решения о том, как я могу улучшить скорость загрузки изображения было бы здорово.Это просто без необходимости медленнее, чем должно быть.

Это было полезно?

Решение

Это звучит так, как вы хотите использовать Cloudfront , Сервис CDN Amazon (сеть доставки контента), которая интегрируетсяс S3.Использование CDN будет воспроизводить глобально повторять содержимое, которое вы храните в CDN (для цены), что должно улучшить время загрузки.

После вы Настройка учетной записи CloudFrontЭто до S3 , добавьте строку, как следующее в вашу конфигурацию оператора:

config.asset_host = "http://1234567.cloudfront.net"
.

с URL, который вы получаете во время настройки CloudFront.

К сожалению, похоже, вам также может понадобиться установить config.fog_public = true для Canarerwave, чтобы иметь возможность использовать CDN Amazon.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top