AWS DataSync是一种服务,可以在AWS中安全快速地传输数据。使用AWS DataSync可以在两个地点之间安全地传输和同步文件,S3存储桶和EFS存储卷。如果需要在DataSync任务执行期间添加文件,则可以使用AWS SDK for Python(Boto3)来完成此操作。
以下示例代码演示如何在DataSync任务执行期间添加文件:
import boto3
client = boto3.client('datasync')
# Start a DataSync task
response = client.start_task_execution(
TaskArn='',
OverrideOptions={
'VerifyMode': 'ONLY_FILES_TRANSFERRED',
#add ACL for the file using below option
'Atime': 'NONE',
'Mtime': 'NONE',
'Uid': 'NONE',
'Gid': 'NONE',
'PreserveDeletedFiles': 'PRESERVE',
'PreserveDevices': 'NONE',
'PosixPermissions': 'NONE',
'BytesPerSecond': 268435456
}
)
# Add a new file to the source location while the task is executing
result = client.create_location_object_storage(
ServerHostname='',
ServerPort=,
ServerProtocol='HTTPS',
BucketName='',
AccessKey='',
SecretKey=''
)
# Get the location ARN of the source object storage location
location_source_arn = result['LocationArn']
# Generate a list of dict objects representing the files to be transferred
transfer_list = [
{
'SourceLocationArn': location_source_arn,
'DestinationLocationArn': '',
'OverwriteMode': 'ALWAYS',
'Source': {
'BucketName': '',
'Key': '',
},
}
]
# Add the new file to the list of files to be transferred
response = client.update_task(
TaskArn='',
Includes={
'Files': transfer_list
}
)
在上面的示例代码中,我们启动了一个传输任务,然后在任务执行期间添加了文件。您可以通过“update_task”函数将文件添加到待传输文件的列表中。同时,您还可以使用“OverrideOptions”参数控制ACL的传输以便文件的访问权限。