(usEastSetting, fakeUploadID, locationConstraint,
callback)
| 37 | const westLocation = 'scality-internal-file'; |
| 38 | |
| 39 | function _createAndAbortMpu(usEastSetting, fakeUploadID, locationConstraint, |
| 40 | callback) { |
| 41 | config.locationConstraints['us-east-1'].legacyAwsBehavior = |
| 42 | usEastSetting; |
| 43 | const post = '<?xml version="1.0" encoding="UTF-8"?>' + |
| 44 | '<CreateBucketConfiguration ' + |
| 45 | 'xmlns="http://s3.amazonaws.com/doc/2006-03-01/">' + |
| 46 | `<LocationConstraint>${locationConstraint}</LocationConstraint>` + |
| 47 | '</CreateBucketConfiguration>'; |
| 48 | const testBucketPutRequest = Object.assign({ post }, bucketPutRequest); |
| 49 | async.waterfall([ |
| 50 | next => bucketPut(authInfo, testBucketPutRequest, log, next), |
| 51 | (corsHeaders, next) => |
| 52 | initiateMultipartUpload(authInfo, initiateRequest, log, next), |
| 53 | (result, corsHeaders, next) => parseString(result, next), |
| 54 | (json, next) => { |
| 55 | // use uploadId parsed from initiateMpu request to construct |
| 56 | // uploadPart and deleteMpu requests |
| 57 | const uploadId = |
| 58 | json.InitiateMultipartUploadResult.UploadId[0]; |
| 59 | const partBody = Buffer.from('I am a part\n', 'utf8'); |
| 60 | const partRequest = new DummyRequest({ |
| 61 | bucketName, |
| 62 | namespace, |
| 63 | objectKey, |
| 64 | headers: { host: `${bucketName}.s3.amazonaws.com` }, |
| 65 | url: `/${objectKey}?partNumber=1&uploadId=${uploadId}`, |
| 66 | query: { |
| 67 | partNumber: '1', |
| 68 | uploadId, |
| 69 | }, |
| 70 | actionImplicitDenies: false, |
| 71 | }, partBody); |
| 72 | const testUploadId = fakeUploadID ? 'nonexistinguploadid' : |
| 73 | uploadId; |
| 74 | const deleteMpuRequest = { |
| 75 | bucketName, |
| 76 | namespace, |
| 77 | objectKey, |
| 78 | headers: { host: `${bucketName}.s3.amazonaws.com` }, |
| 79 | url: `/${objectKey}?uploadId=${testUploadId}`, |
| 80 | query: { uploadId: testUploadId }, |
| 81 | actionImplicitDenies: false, |
| 82 | }; |
| 83 | next(null, partRequest, deleteMpuRequest); |
| 84 | }, |
| 85 | (partRequest, deleteMpuRequest, next) => |
| 86 | objectPutPart(authInfo, partRequest, undefined, log, err => { |
| 87 | if (err) { |
| 88 | return next(err); |
| 89 | } |
| 90 | return next(null, deleteMpuRequest); |
| 91 | }), |
| 92 | (deleteMpuRequest, next) => |
| 93 | multipartDelete(authInfo, deleteMpuRequest, log, next), |
| 94 | ], callback); |
| 95 | } |
| 96 |
no test coverage detected