Nano Hash - криптовалюты, майнинг, программирование

NameError (неинициализированная константа Aws::VERSION):

Я интегрирую скрепку с ведром S3 в RAILS 5. Я имею в виду https://coderwall.com/p/vv1iwg/set-up-ruby-on-rails-with-paperclip-5-and-s3-using-aws-sdk-v2. Я написал следующее в моем development.rb:

  config.paperclip_defaults = {
    storage: :s3,
    s3_region: 'us-west-2',
    s3_credentials: {
      bucket: 'mybucket',
      access_key_id: 'my id',
      secret_access_key: 'my secret key'
      }
    } 

Я получаю следующую ошибку при загрузке изображения:

NameError (uninitialized constant Aws::VERSION):

Я использую версию 3.0.1 gem aws-sdk


  • @AjayBarot: учетные данные будут в виде строки. Я также пытался создать файл yml для учетных данных и загрузить его, но не повезло 11.09.2017
  • Проверьте версию aws-sdk. Если это ‹ 2.0, это объясняет ошибку. 11.09.2017
  • Я использую последнюю версию, т.е. aws-sdk (3.0.1) 11.09.2017

Ответы:


1

Вместо понижения можно ввести переменную, отсутствующую в текущей версии paperclip. Добавление этого файла работает с aws-sdk 3.0.1 и paperclip 5.1.0 и, вероятно, будет работать до тех пор, пока paperclip не будет обновлен с учетом изменений aws.

# config/initializers/aws.rb
Aws::VERSION =  Gem.loaded_specs["aws-sdk"].version
06.12.2017
  • Это лучшее решение, чем использование старой версии aws-sdk, у меня отлично работает с Paperclip 5.1. 27.01.2018

  • 2

    Я понизил версию aws-sdk до aws-sdk (2.10.42), и она работает.

    11.09.2017
  • То же самое здесь, кажется, это ошибка aws-sdk 3.x. 12.09.2017
  • aws-sdk 3.x удалил эту константу, но paperclip в текущей версии 5.1.0 полагается на эту константу, поэтому происходит сбой. gem 'aws-sdk', '~> 2.10.47' дает вам последнюю версию 2.x, которая отлично работает со скрепкой. 20.09.2017
  • Это работает с Paperclip 5.1, но ответ Питера ДеВиза тоже работает и является более удобным обходным путем, позволяя вам использовать текущий aws-sdk 27.01.2018

  • 3

    Вот мой конфиг для CarrierWave с minimagick, думаю что-то подобное можно сделать и для вашего случая:

    config/initializers/carrier_wave.rb

    CarrierWave.configure do |config|       
         config.fog_credentials = {     
             provider:              'AWS',      
             aws_access_key_id:     ENV['S3_ACCESS_KEY'],       
             aws_secret_access_key: ENV['S3_SECRET_KEY'],       
             region:                ENV['S3_REGION']        
         }      
         config.fog_directory     =  ENV['S3_BUCKET']       
     end
    
    11.09.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..