【发布时间】:2021-01-27 06:32:50
【问题描述】:
我在尝试使用 ActiveStorage 的直接上传功能时遇到以下错误。我搜索了错误unexpected value at params[:whitelist_headers],发现的唯一结果建议升级到最新版本的aws-sdk-s3。但是,我相信我使用的是最新版本的 s3。这是我的 Gemfile:
# frozen_string_literal: true
source "https://rubygems.org"
ruby File.read(File.join(__dir__, ".ruby-version")).chomp
gem "rails", "~> 6.0"
gem "rails-i18n"
gem "bootsnap", require: false
gem "foreman"
gem "pg"
gem "puma", "~> 4.3"
...
...
...
gem 'aws-sdk-s3', require: false
gem 'mini_magick'
gem 'rack-cors
还有错误信息:
Started POST "/rails/active_storage/direct_uploads" for 127.0.0.1 at 2020-10-12 17:14:51 -0500
Processing by ActiveStorage::DirectUploadsController#create as JSON
Parameters: {"blob"=>{"filename"=>"Screen Shot 2020-10-02 at 4.02.49 PM.png", "content_type"=>"image/png", "byte_size"=>120011, "checksum"=>"06QCMFP69Z4HT6w98ugkyQ=="}, "direct_upload"=>{"blob"=>{"filename"=>"Screen Shot 2020-10-02 at 4.02.49 PM.png", "content_type"=>"image/png", "byte_size"=>120011, "checksum"=>"06QCMFP69Z4HT6w98ugkyQ=="}}}
(0.3ms) BEGIN
ActiveStorage::Blob Create (0.3ms) INSERT INTO "active_storage_blobs" ("key", "filename", "content_type", "byte_size", "checksum", "created_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id" [["key", "ai7p1m5pknvo2wstwc6nw8ihf31h"], ["filename", "Screen Shot 2020-10-02 at 4.02.49 PM.png"], ["content_type", "image/png"], ["byte_size", 120011], ["checksum", "06QCMFP69Z4HT6w98ugkyQ=="], ["created_at", "2020-10-12 22:14:51.332510"]]
(0.4ms) COMMIT
S3 Storage (0.8ms) Generated URL for file at key: ai7p1m5pknvo2wstwc6nw8ihf31h ()
Completed 500 in 10ms (ActiveRecord: 1.1ms | Allocations: 6659)
ArgumentError (unexpected value at params[:whitelist_headers]):
aws-sdk-core (3.46.2) lib/aws-sdk-core/param_validator.rb:32:in `validate!'
aws-sdk-core (3.46.2) lib/aws-sdk-core/param_validator.rb:13:in `validate!'
aws-sdk-core (3.46.2) lib/aws-sdk-core/plugins/param_validator.rb:23:in `call'
aws-sdk-core (3.46.2) lib/seahorse/client/plugins/raise_response_errors.rb:14:in `call'
感谢任何帮助
【问题讨论】:
-
我已经answered 这个了,但基于你发生的事情也发生在我身上的假设。要清除该假设,您可以提供您的
Gemfile.lock。我猜你不再拥有它,但它与日志和Gemfile一样重要,因为两者都没有显示 Rails gems 和aws-sdk-s3gem 的确切版本。
标签: ruby-on-rails rails-activestorage