Avoid specifying content types for direct uploads to Google Cloud Storage

Fix customizing the download Content-Type for a directly-uploaded blob via a signed URL. See e8286ee.
This commit is contained in:
George Claghorn 2018-02-26 11:35:13 -05:00
parent 690d2a4946
commit 8a79d04e4d
2 changed files with 5 additions and 6 deletions

@ -80,10 +80,9 @@ def url(key, expires_in:, filename:, content_type:, disposition:)
end
end
def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:)
def url_for_direct_upload(key, expires_in:, checksum:, **)
instrument :url, key: key do |payload|
generated_url = bucket.signed_url key, method: "PUT", expires: expires_in,
content_type: content_type, content_md5: checksum
generated_url = bucket.signed_url key, method: "PUT", expires: expires_in, content_md5: checksum
payload[:url] = generated_url
@ -91,8 +90,8 @@ def url_for_direct_upload(key, expires_in:, content_type:, content_length:, chec
end
end
def headers_for_direct_upload(key, content_type:, checksum:, **)
{ "Content-Type" => content_type, "Content-MD5" => checksum }
def headers_for_direct_upload(key, checksum:, **)
{ "Content-Type" => "", "Content-MD5" => checksum }
end
private

@ -19,7 +19,7 @@ class ActiveStorage::Service::GCSServiceTest < ActiveSupport::TestCase
uri = URI.parse url
request = Net::HTTP::Put.new uri.request_uri
request.body = data
request.add_field "Content-Type", "text/plain"
request.add_field "Content-Type", ""
request.add_field "Content-MD5", checksum
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request request