aws s3api select-object-content --bucket [BUCKET_NAME] --key [KEY_NAME] --expression "SELECT * FROM s3object" --input-serialization '{"CSV": {"FileHeaderInfo": "Use"}, "CompressionType": "GZIP"}' --output-serialization '{"CSV": {}}' outputFile.gz
这个命令将文件压缩并且只下载你需要的字段,将会使下载速度更快。
以下是使用Python SDK进行S3 Select查询的代码示例:
import boto3
s3 = boto3.client('s3')
response = s3.select_object_content( Bucket='mybucket', Key='mykey.csv', ExpressionType='SQL', Expression="SELECT * FROM s3object", InputSerialization = {'CSV': {"FileHeaderInfo": "Use"}, 'CompressionType': 'GZIP'}, OutputSerialization = {'CSV': {}}, )
for event in response['Payload']: if 'Records' in event: print(event['Records']['Payload'].decode('utf-8'))
这个示例演示了如何将整个S3对象作为输入,然后使用'SELECT * FROM s3object'查询整个对象中的所有内容。注意,这个方法不适用于大型文件。
以下是使用Python SDK通过S3 Transfer Acceleration下载文件的代码示例:
import boto3 s3 = boto3.resource('s3', endpoint_url='https://s3-accelerate.amazonaws.com') bucket = s3.Bucket('mybucket') for obj in bucket.objects.all(): print(obj.key)
在这个示例中,我们使用了习惯的S3 API,但是我们为S3上的端点加上了"-accelerate"。这个操作将会启用S3 Transfer Acceleration,并