createMultipartUpload method
Future<CreateMultipartUploadOutput>
createMultipartUpload({
- required String bucket,
- required String key,
- ObjectCannedACL? acl,
- bool? bucketKeyEnabled,
- String? cacheControl,
- ChecksumAlgorithm? checksumAlgorithm,
- ChecksumType? checksumType,
- String? contentDisposition,
- String? contentEncoding,
- String? contentLanguage,
- String? contentType,
- String? expectedBucketOwner,
- String? expires,
- String? grantFullControl,
- String? grantRead,
- String? grantReadACP,
- String? grantWriteACP,
- Map<
String, String> ? metadata, - ObjectLockLegalHoldStatus? objectLockLegalHoldStatus,
- ObjectLockMode? objectLockMode,
- DateTime? objectLockRetainUntilDate,
- RequestPayer? requestPayer,
- String? sSECustomerAlgorithm,
- String? sSECustomerKey,
- String? sSECustomerKeyMD5,
- String? sSEKMSEncryptionContext,
- String? sSEKMSKeyId,
- ServerSideEncryption? serverSideEncryption,
- StorageClass? storageClass,
- String? tagging,
- String? websiteRedirectLocation,
Implementation
Future<CreateMultipartUploadOutput> createMultipartUpload({
required String bucket,
required String key,
ObjectCannedACL? acl,
bool? bucketKeyEnabled,
String? cacheControl,
ChecksumAlgorithm? checksumAlgorithm,
ChecksumType? checksumType,
String? contentDisposition,
String? contentEncoding,
String? contentLanguage,
String? contentType,
String? expectedBucketOwner,
String? expires,
String? grantFullControl,
String? grantRead,
String? grantReadACP,
String? grantWriteACP,
Map<String, String>? metadata,
ObjectLockLegalHoldStatus? objectLockLegalHoldStatus,
ObjectLockMode? objectLockMode,
DateTime? objectLockRetainUntilDate,
RequestPayer? requestPayer,
String? sSECustomerAlgorithm,
String? sSECustomerKey,
String? sSECustomerKeyMD5,
String? sSEKMSEncryptionContext,
String? sSEKMSKeyId,
ServerSideEncryption? serverSideEncryption,
StorageClass? storageClass,
String? tagging,
String? websiteRedirectLocation,
}) async {
final headers = <String, String>{
if (acl != null) 'x-amz-acl': acl.value,
if (bucketKeyEnabled != null)
'x-amz-server-side-encryption-bucket-key-enabled':
bucketKeyEnabled.toString(),
if (cacheControl != null) 'Cache-Control': cacheControl.toString(),
if (checksumAlgorithm != null)
'x-amz-checksum-algorithm': checksumAlgorithm.value,
if (checksumType != null) 'x-amz-checksum-type': checksumType.value,
if (contentDisposition != null)
'Content-Disposition': contentDisposition.toString(),
if (contentEncoding != null)
'Content-Encoding': contentEncoding.toString(),
if (contentLanguage != null)
'Content-Language': contentLanguage.toString(),
if (contentType != null) 'Content-Type': contentType.toString(),
if (expectedBucketOwner != null)
'x-amz-expected-bucket-owner': expectedBucketOwner.toString(),
if (expires != null) 'Expires': expires.toString(),
if (grantFullControl != null)
'x-amz-grant-full-control': grantFullControl.toString(),
if (grantRead != null) 'x-amz-grant-read': grantRead.toString(),
if (grantReadACP != null) 'x-amz-grant-read-acp': grantReadACP.toString(),
if (grantWriteACP != null)
'x-amz-grant-write-acp': grantWriteACP.toString(),
if (metadata != null)
...metadata.map((key, value) => MapEntry('x-amz-meta-$key', value)),
if (objectLockLegalHoldStatus != null)
'x-amz-object-lock-legal-hold': objectLockLegalHoldStatus.value,
if (objectLockMode != null)
'x-amz-object-lock-mode': objectLockMode.value,
if (objectLockRetainUntilDate != null)
'x-amz-object-lock-retain-until-date':
_s.iso8601ToJson(objectLockRetainUntilDate),
if (requestPayer != null) 'x-amz-request-payer': requestPayer.value,
if (sSECustomerAlgorithm != null)
'x-amz-server-side-encryption-customer-algorithm':
sSECustomerAlgorithm.toString(),
if (sSECustomerKey != null)
'x-amz-server-side-encryption-customer-key': sSECustomerKey.toString(),
if (sSECustomerKeyMD5 != null)
'x-amz-server-side-encryption-customer-key-MD5':
sSECustomerKeyMD5.toString(),
if (sSEKMSEncryptionContext != null)
'x-amz-server-side-encryption-context':
sSEKMSEncryptionContext.toString(),
if (sSEKMSKeyId != null)
'x-amz-server-side-encryption-aws-kms-key-id': sSEKMSKeyId.toString(),
if (serverSideEncryption != null)
'x-amz-server-side-encryption': serverSideEncryption.value,
if (storageClass != null) 'x-amz-storage-class': storageClass.value,
if (tagging != null) 'x-amz-tagging': tagging.toString(),
if (websiteRedirectLocation != null)
'x-amz-website-redirect-location': websiteRedirectLocation.toString(),
};
final $result = await _protocol.sendRaw(
method: 'POST',
requestUri:
'/${Uri.encodeComponent(bucket)}/${key.split('/').map(Uri.encodeComponent).join('/')}?uploads',
headers: headers,
exceptionFnMap: _exceptionFns,
);
final $elem = await _s.xmlFromResponse($result);
return CreateMultipartUploadOutput(
bucket: _s.extractXmlStringValue($elem, 'Bucket'),
key: _s.extractXmlStringValue($elem, 'Key'),
uploadId: _s.extractXmlStringValue($elem, 'UploadId'),
abortDate:
_s.extractHeaderDateTimeValue($result.headers, 'x-amz-abort-date'),
abortRuleId:
_s.extractHeaderStringValue($result.headers, 'x-amz-abort-rule-id'),
bucketKeyEnabled: _s.extractHeaderBoolValue(
$result.headers, 'x-amz-server-side-encryption-bucket-key-enabled'),
checksumAlgorithm: _s
.extractHeaderStringValue($result.headers, 'x-amz-checksum-algorithm')
?.let(ChecksumAlgorithm.fromString),
checksumType: _s
.extractHeaderStringValue($result.headers, 'x-amz-checksum-type')
?.let(ChecksumType.fromString),
requestCharged: _s
.extractHeaderStringValue($result.headers, 'x-amz-request-charged')
?.let(RequestCharged.fromString),
sSECustomerAlgorithm: _s.extractHeaderStringValue(
$result.headers, 'x-amz-server-side-encryption-customer-algorithm'),
sSECustomerKeyMD5: _s.extractHeaderStringValue(
$result.headers, 'x-amz-server-side-encryption-customer-key-MD5'),
sSEKMSEncryptionContext: _s.extractHeaderStringValue(
$result.headers, 'x-amz-server-side-encryption-context'),
sSEKMSKeyId: _s.extractHeaderStringValue(
$result.headers, 'x-amz-server-side-encryption-aws-kms-key-id'),
serverSideEncryption: _s
.extractHeaderStringValue(
$result.headers, 'x-amz-server-side-encryption')
?.let(ServerSideEncryption.fromString),
);
}