class ActiveStorage::Service::GCSService
Public Instance Methods
url_for_resumable_upload(key, content_type, **)
click to toggle source
# File lib/activestorage_extensions/service/gcs_service.rb, line 8 def url_for_resumable_upload(key, content_type, **) instrument :url, key: key do |payload| signed_url = bucket.signed_url(key, method: 'PUT', content_type: content_type, version: :v4) uri = URI.parse(signed_url) https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true headers = { 'Origin': ActiveStorage::Resumable.upload_origin_url, 'x-goog-resumable': 'start' } request = Net::HTTP::Put.new(uri.request_uri, headers) response = https.request(request) generated_url = response['location'] payload[:url] = generated_url generated_url end end