method
url_for_direct_upload
v7.1.3.4 -
Show latest stable
- Class:
ActiveStorage::Service::GCSService
url_for_direct_upload(key, expires_in:, checksum:, custom_metadata: {}, **)public
No documentation available.
# 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