diff --git a/google-apis-core/lib/google/apis/core/storage_upload.rb b/google-apis-core/lib/google/apis/core/storage_upload.rb index da31878d3a3..cd7e7823207 100644 --- a/google-apis-core/lib/google/apis/core/storage_upload.rb +++ b/google-apis-core/lib/google/apis/core/storage_upload.rb @@ -28,6 +28,7 @@ class StorageUploadCommand < ApiCommand CONTENT_LENGTH_HEADER = "Content-Length" CONTENT_TYPE_HEADER = "Content-Type" UPLOAD_CONTENT_TYPE_HEADER = "X-Upload-Content-Type" + UPLOAD_CONTENT_LENGTH_HEADER = "X-Upload-Content-Length" LOCATION_HEADER = "Location" CONTENT_RANGE_HEADER = "Content-Range" RESUMABLE = "resumable" @@ -133,9 +134,9 @@ def initiate_resumable_upload(client) request_query = query.dup request_query['uploadType'] = RESUMABLE - request_header[CONTENT_LENGTH_HEADER] = upload_io.size.to_s request_header[CONTENT_TYPE_HEADER] = JSON_CONTENT_TYPE request_header[UPLOAD_CONTENT_TYPE_HEADER] = upload_content_type unless upload_content_type.nil? + request_header[UPLOAD_CONTENT_LENGTH_HEADER] = upload_io.size.to_s response = client.post(url.to_s, body, request_header) do |request| request.params.replace(request_query) diff --git a/google-apis-core/spec/google/apis/core/storage_upload_spec.rb b/google-apis-core/spec/google/apis/core/storage_upload_spec.rb index 7435f9cafe8..43bda9fcf68 100644 --- a/google-apis-core/spec/google/apis/core/storage_upload_spec.rb +++ b/google-apis-core/spec/google/apis/core/storage_upload_spec.rb @@ -51,6 +51,12 @@ expect(a_request(:put, 'https://www.googleapis.com/zoo/animals')).to have_been_made end + it 'should send X-Upload-Content-Length in initiate request' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals?uploadType=resumable') + .with { |req| req.headers.key?('X-Upload-Content-Length') }).to have_been_made + end + it 'should generate a proper opencensus span' do OpenCensus::Trace.start_request_trace do |span_context| command.execute(client)