MCPcopy Index your code
hub / github.com/scality/cloudserver / _uploadMpuObject

Function _uploadMpuObject

tests/unit/api/multipartUpload.js:155–183  ·  view source on GitHub ↗
(params = {})

Source from the content-addressed store, hash-verified

153const _bucketPut = util.promisify(bucketPut);
154
155async 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
185describe('Multipart Upload API', () => {
186 beforeEach(() => {

Callers 1

multipartUpload.jsFile · 0.85

Calls 4

_createPutPartRequestFunction · 0.85
_completeMultipartUploadFunction · 0.85
_initiateMultipartUploadFunction · 0.70

Tested by

no test coverage detected