MCPcopy
hub / github.com/scality/cloudserver / _getMPUBucket

Function _getMPUBucket

lib/api/initiateMultipartUpload.js:153–213  ·  view source on GitHub ↗
(destinationBucket, log, corsHeaders,
    uploadId, cipherBundle, locConstraint, callback)

Source from the content-addressed store, hash-verified

151 }
152
153 function _getMPUBucket(destinationBucket, log, corsHeaders,
154 uploadId, cipherBundle, locConstraint, callback) {
155 const xmlParams = {
156 bucketName,
157 objectKey,
158 uploadId,
159 };
160 const xml = convertToXml('initiateMultipartUpload', xmlParams);
161 metadataStoreParams.uploadId = uploadId;
162
163 services.getMPUBucket(destinationBucket, bucketName, log,
164 (err, MPUbucket) => {
165 if (err) {
166 log.trace('error getting MPUbucket', {
167 error: err,
168 });
169 return callback(err);
170 }
171 // BACKWARD: Remove to remove the old splitter
172 if (MPUbucket.getMdBucketModelVersion() < 2) {
173 metadataStoreParams.splitter = constants.oldSplitter;
174 }
175 return services.metadataStoreMPObject(MPUbucket.getName(),
176 cipherBundle, metadataStoreParams,
177 log, (err, mpuMD) => {
178 if (err) {
179 log.trace('error storing multipart object', {
180 error: err,
181 });
182 monitoring.promMetrics('PUT', bucketName, err.code,
183 'initiateMultipartUpload');
184 return callback(err, null, corsHeaders);
185 }
186 log.addDefaultFields({ uploadId });
187 log.trace('successfully initiated mpu');
188 pushMetric('initiateMultipartUpload', log, {
189 authInfo,
190 bucket: bucketName,
191 keys: [objectKey],
192 location: locConstraint,
193 });
194
195 // TODO: rename corsHeaders to headers
196 setExpirationHeaders(corsHeaders, {
197 lifecycleConfig: destinationBucket.getLifecycleConfiguration(),
198 mpuParams: {
199 key: mpuMD.key,
200 date: mpuMD.initiated,
201 },
202 });
203
204 setSSEHeaders(corsHeaders,
205 mpuMD['x-amz-server-side-encryption'],
206 mpuMD['x-amz-server-side-encryption-aws-kms-key-id']);
207
208 monitoring.promMetrics('PUT', bucketName, '200',
209 'initiateMultipartUpload');
210 return callback(null, xml, corsHeaders);

Callers 1

_storetheMPObjectFunction · 0.85

Calls 6

pushMetricFunction · 0.85
setExpirationHeadersFunction · 0.85
setSSEHeadersFunction · 0.85
traceMethod · 0.80
addDefaultFieldsMethod · 0.80
convertToXmlFunction · 0.70

Tested by

no test coverage detected