createLocationObjectStorage method
- required String bucketName,
- required String serverHostname,
- String? accessKey,
- List<
String> ? agentArns, - CmkSecretConfig? cmkSecretConfig,
- CustomSecretConfig? customSecretConfig,
- String? secretKey,
- Uint8List? serverCertificate,
- int? serverPort,
- ObjectStorageServerProtocol? serverProtocol,
- String? subdirectory,
- List<
TagListEntry> ? tags,
Creates a transfer location for an object storage system. DataSync can use this location as a source or destination for transferring data. You can make transfers with or without a DataSync agent.
Before you begin, make sure that you understand the prerequisites for DataSync to work with object storage systems.
May throw InternalException.
May throw InvalidRequestException.
Parameter bucketName :
Specifies the name of the object storage bucket involved in the transfer.
Parameter serverHostname :
Specifies the domain name or IP address (IPv4 or IPv6) of the object
storage server that your DataSync agent connects to.
Parameter accessKey :
Specifies the access key (for example, a user name) if credentials are
required to authenticate with the object storage server.
Parameter agentArns :
(Optional) Specifies the Amazon Resource Names (ARNs) of the DataSync
agents that can connect with your object storage system. If you are
setting up an agentless cross-cloud transfer, you do not need to specify a
value for this parameter.
Parameter cmkSecretConfig :
Specifies configuration information for a DataSync-managed secret, which
includes the SecretKey that DataSync uses to access a
specific object storage location, with a customer-managed KMS key.
When you include this parameter as part of a
CreateLocationObjectStorage request, you provide only the KMS
key ARN. DataSync uses this KMS key together with the value you specify
for the SecretKey parameter to create a DataSync-managed
secret to store the location access credentials.
Make sure that DataSync has permission to access the KMS key that you specify. For more information, see Using a service-managed secret encrypted with a custom KMS key.
Parameter customSecretConfig :
Specifies configuration information for a customer-managed Secrets Manager
secret where the secret key for a specific object storage location is
stored in plain text, in Secrets Manager. This configuration includes the
secret ARN, and the ARN for an IAM role that provides access to the
secret. For more information, see
Using a secret that you manage.
Parameter secretKey :
Specifies the secret key (for example, a password) if credentials are
required to authenticate with the object storage server.
Parameter serverCertificate :
Specifies a certificate chain for DataSync to authenticate with your
object storage system if the system uses a private or self-signed
certificate authority (CA). You must specify a single .pem
file with a full certificate chain (for example,
file:///home/user/.ssh/object_storage_certificates.pem).
The certificate chain might include:
- The object storage system's certificate
- All intermediate certificates (if there are any)
- The root certificate of the signing CA
.pem file (which
can be up to 32768 bytes before base64 encoding). The following example
cat command creates an
object_storage_certificates.pem file that includes three
certificates:
cat object_server_certificate.pem intermediate_certificate.pem
ca_root_certificate.pem > object_storage_certificates.pem
To use this parameter, configure ServerProtocol to
HTTPS.
Parameter serverPort :
Specifies the port that your object storage server accepts inbound network
traffic on (for example, port 443).
Parameter serverProtocol :
Specifies the protocol that your object storage server uses to
communicate. If not specified, the default value is HTTPS.
Parameter subdirectory :
Specifies the object prefix for your object storage server. If this is a
source location, DataSync only copies objects with this prefix. If this is
a destination location, DataSync writes all objects with this prefix.
Parameter tags :
Specifies the key-value pair that represents a tag that you want to add to
the resource. Tags can help you manage, filter, and search for your
resources. We recommend creating a name tag for your location.
Implementation
Future<CreateLocationObjectStorageResponse> createLocationObjectStorage({
required String bucketName,
required String serverHostname,
String? accessKey,
List<String>? agentArns,
CmkSecretConfig? cmkSecretConfig,
CustomSecretConfig? customSecretConfig,
String? secretKey,
Uint8List? serverCertificate,
int? serverPort,
ObjectStorageServerProtocol? serverProtocol,
String? subdirectory,
List<TagListEntry>? tags,
}) async {
_s.validateNumRange(
'serverPort',
serverPort,
1,
65536,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'FmrsService.CreateLocationObjectStorage'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'BucketName': bucketName,
'ServerHostname': serverHostname,
if (accessKey != null) 'AccessKey': accessKey,
if (agentArns != null) 'AgentArns': agentArns,
if (cmkSecretConfig != null) 'CmkSecretConfig': cmkSecretConfig,
if (customSecretConfig != null)
'CustomSecretConfig': customSecretConfig,
if (secretKey != null) 'SecretKey': secretKey,
if (serverCertificate != null)
'ServerCertificate': base64Encode(serverCertificate),
if (serverPort != null) 'ServerPort': serverPort,
if (serverProtocol != null) 'ServerProtocol': serverProtocol.value,
if (subdirectory != null) 'Subdirectory': subdirectory,
if (tags != null) 'Tags': tags,
},
);
return CreateLocationObjectStorageResponse.fromJson(jsonResponse.body);
}