instance method
upload
Ruby on Rails 6.0.6
Since v5.2.8.1Signature
upload(key, io, checksum: nil, content_type: nil, disposition: nil, filename: nil)
No documentation comment.
Parameters
-
keyreq -
ioreq -
checksumkey = nil -
content_typekey = nil -
dispositionkey = nil -
filenamekey = nil
Source
# File activestorage/lib/active_storage/service/gcs_service.rb, line 14
def upload(key, io, checksum: nil, content_type: nil, disposition: nil, filename: nil)
instrument :upload, key: key, checksum: checksum do
# GCS's signed URLs don't include params such as response-content-type response-content_disposition
# in the signature, which means an attacker can modify them and bypass our effort to force these to
# binary and attachment when the file's content type requires it. The only way to force them is to
# store them as object's metadata.
content_disposition = content_disposition_with(type: disposition, filename: filename) if disposition && filename
bucket.create_file(io, key, md5: checksum, content_type: content_type, content_disposition: content_disposition)
rescue Google::Cloud::InvalidArgumentError
raise ActiveStorage::IntegrityError
end
end
Defined in activestorage/lib/active_storage/service/gcs_service.rb line 14
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveStorage::Service::GCSService