instance method url_for_direct_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

url_for_direct_upload(key, expires_in:, checksum:, custom_metadata: {}, **)

No documentation comment.

Parameters

key req
expires_in keyreq
checksum keyreq
custom_metadata key = {}
kwargs keyrest
Source
# File activestorage/lib/active_storage/service/gcs_service.rb, line 92
    def url_for_direct_upload(key, expires_in:, checksum:, custom_metadata: {}, **)
      instrument :url, key: key do |payload|
        headers = {}
        version = :v2

        if @config[:cache_control].present?
          headers["Cache-Control"] = @config[:cache_control]
          # v2 signing doesn't support non `x-goog-` headers. Only switch to v4 signing
          # if necessary for back-compat; v4 limits the expiration of the URL to 7 days
          # whereas v2 has no limit
          version = :v4
        end

        headers.merge!(custom_metadata_headers(custom_metadata))

        args = {
          content_md5: checksum,
          expires: expires_in,
          headers: headers,
          method: "PUT",
          version: version,
        }

        if @config[:iam]
          args[:issuer] = issuer
          args[:signer] = signer
        end

        generated_url = bucket.signed_url(key, **args)

        payload[:url] = generated_url

        generated_url
      end
    end

Defined in activestorage/lib/active_storage/service/gcs_service.rb line 92 · 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