instance method
url_for_direct_upload
Ruby on Rails 8.1.2
Since v5.2.8.1Signature
url_for_direct_upload(key, expires_in:, checksum:, custom_metadata: {}, **)
No documentation comment.
Parameters
-
keyreq -
expires_inkeyreq -
checksumkeyreq -
custom_metadatakey = {} -
kwargskeyrest
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