(params = {})
| 153 | const _bucketPut = util.promisify(bucketPut); |
| 154 | |
| 155 | async function _uploadMpuObject(params = {}) { |
| 156 | const _initiateMultipartUpload = async (...params) => { |
| 157 | const result = await util.promisify(initiateMultipartUpload)(...params); |
| 158 | const json = await parseStringPromise(result); |
| 159 | return json.InitiateMultipartUploadResult.UploadId[0]; |
| 160 | }; |
| 161 | const _objectPutPart = util.promisify(objectPutPart); |
| 162 | const _completeMultipartUpload = (...params) => util.promisify(cb => |
| 163 | completeMultipartUpload(...params, (err, xml, headers) => cb(err, { xml, headers })))(); |
| 164 | |
| 165 | const headers = { ...initiateRequest.headers }; |
| 166 | if (params.location) { |
| 167 | headers[constants.objectLocationConstraintHeader] = params.location; |
| 168 | } |
| 169 | if (params.versionID) { |
| 170 | headers['x-scal-s3-version-id'] = params.versionID; |
| 171 | } |
| 172 | |
| 173 | const uploadId = await _initiateMultipartUpload(authInfo, { ...initiateRequest, headers }, log); |
| 174 | |
| 175 | const partRequest = _createPutPartRequest(uploadId, 1, Buffer.from('I am a part\n', 'utf8')); |
| 176 | partRequest.headers = headers; |
| 177 | const eTag = await _objectPutPart(authInfo, partRequest, undefined, log); |
| 178 | |
| 179 | const completeRequest = _createCompleteMpuRequest(uploadId, [{ partNumber: 1, eTag }]); |
| 180 | const resp = await _completeMultipartUpload(authInfo, { ...completeRequest, headers }, log); |
| 181 | |
| 182 | return resp.headers; |
| 183 | } |
| 184 | |
| 185 | describe('Multipart Upload API', () => { |
| 186 | beforeEach(() => { |
no test coverage detected