Проблемы с загрузкой временного файла Carrierwave / Dropzone - PullRequest
0 голосов
/ 26 октября 2019

Это странная проблема, которая охватывает многие системы и не знает, где находится корень. У меня есть приложение Rails 4, которое я перенес на Rails 5. Я использую carrierwave, carrierwave-aws и dropzone.js для AWS 3S. Мое старое приложение Legacy работает отлично. Новое приложение работает также, но выдает ошибку в фоновом режиме, когда я загружаю через Dropzone.

С carrierwave-aws, и контроллер сохраняет загрузку несущей волны (она загружается и сохраняется в БД), если выдает multipart_copy: file.size >= MULTIPART_TRESHOLD at с undefined method> = 'для nil: NilClass`

NoMethodError: undefined method `>=' for nil:NilClass
  from carrierwave/storage/aws_options.rb:29:in `move_options'
  from carrierwave/storage/aws_file.rb:73:in `move_to'
  from carrierwave/storage/aws_file.rb:57:in `store'
  from carrierwave/storage/aws.rb:18:in `block in store!'

Соответствующий код:

  def move_options(file)
    {
      acl: uploader.aws_acl,
      multipart_copy: file.size >= MULTIPART_TRESHOLD
    }.merge(aws_attributes).merge(aws_write_options)
  end

Я тогда устал FOG, который показывает аналогичную ошибку:

Excon::Error::NotFound
Expected(200) <=> Actual(404 Not Found)
excon.error.response
  :body          => "<Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Key>uploads/tmp/1571981392-820410573725319-0002-3934/LDT_export.xlsx</Key><RequestId>968BFF30B5502600</RequestId><HostId>yoqwixTfgqxppxOTsC6yKI2NJDY8YvmsuHFqvJkaC3IfzauEvyGBSch/b2pu/gdrTb6taxQSUQc=</HostId></Error>"
  :cookies       => [
  ]
  :headers       => {
    "Content-Type"        => "application/xml"
    "Date"                => "Fri, 25 Oct 2019 05:29:55 GMT"
    "Server"              => "AmazonS3"
    "x-amz-delete-marker" => "true"
    "x-amz-id-2"          => "yoqwixTfgqxppxOTsC6yKI2NJDY8YvmsuHFqvJkaC3IfzauEvyGBSch/b2pu/gdrTb6taxQSUQc="
    "x-amz-request-id"    => "968BFF30B5502600"
    "x-amz-version-id"    => "NPV4VoXhQ8OrY2vOSqmjYLrgEqELxjlt"
  }
  :host          => "otproduction.s3.us-west-2.amazonaws.com"
  :local_address => "159.203.1.40"
  :local_port    => 51808
  :path          => "/locations/hdnw2xf8/uploads/mc4x2klf/LDT_export.xlsx"
  :port          => 443
  :reason_phrase => "Not Found"
  :remote_ip     => "52.218.217.193"
  :status        => 404
  :status_line   => "HTTP/1.1 404 Not Found\r\n"

Файлы загружены, но вызывают эти ошибки. У меня есть загрузчик не из Dropzone (аватар), который не выдает эту ошибку, поэтому что-то не так с Dropzone. Я добавил enctype: 'multipart/form-data' с подозрением, что это многокомпонентный вопрос, но не повезло.

Есть идеи? Надеясь, что кто-то прочитает это и увидит очевидное решение.

...