instance method upload

Ruby on Rails 8.1.2

Since v5.2.8.1

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

upload(key, io, checksum: nil, content_type: nil, disposition: nil, filename: nil, custom_metadata: {})

No documentation comment.

Parameters

key req
io req
checksum key = nil
content_type key = nil
disposition key = nil
filename key = nil
custom_metadata key = {}
Source
# File activestorage/lib/active_storage/service/gcs_service.rb, line 21
    def upload(key, io, checksum: nil, content_type: nil, disposition: nil, filename: nil, custom_metadata: {})
      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, cache_control: @config[:cache_control], content_type: content_type, content_disposition: content_disposition, metadata: custom_metadata)
      rescue Google::Cloud::InvalidArgumentError
        raise ActiveStorage::IntegrityError
      end
    end

Defined in activestorage/lib/active_storage/service/gcs_service.rb line 21 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveStorage::Service::GCSService

Type at least 2 characters to search.

↑↓ navigate · open · esc close