method

upload

Importance_0
v5.2.3 - Show latest stable - 0 notes - Class: GCSService
upload(key, io, checksum: nil, content_type: nil, disposition: nil, filename: nil) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activestorage/lib/active_storage/service/gcs_service.rb, line 18
    def upload(key, io, checksum: nil, content_type: nil, disposition: nil, filename: nil)
      instrument :upload, key: key, checksum: checksum do
        begin
          # 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
    end
Register or log in to add new notes.