トランスファーアクセラレーションを使用する
トランスファーアクセラレーションを有効にして、エンドユーザーデバイスとS3バケット間で長距離にわたるファイルの高速かつ安全な転送を行うことができます。このこのこの構成のストレージリソースをオーバーライドしてから、useAccelerateEndpointパラメータを使用して、加速されたS3エンドポイントを活用できます。
ストレージリソースをオーバーライドする
S3バケットでトランスファーアクセラレーションを有効にするために、ストレージリソースをオーバーライドすることから始めます。
$ amplify override storage✅ Successfully generated "override.ts" folder at <project>/amplify/backend/storage/accelerated-bucket✔ Do you want to edit override.ts file now? (Y/n) · yesEdit the file in your editor: <project>/amplify/backend/storage/accelerated-bucket/override.ts生成されたoverride.tsファイルで、次のCDKスニペットを使用してトランスファーアクセラレーションを有効にします。
// amplify/backend/storage/accelerated-bucket/override.tsimport { AmplifyS3ResourceTemplate } from '@aws-amplify/cli-extensibility-helper';
export function override(resources: AmplifyS3ResourceTemplate) { resources.s3Bucket.accelerateConfiguration = { accelerationStatus: 'Enabled' }}次に、このストレージリソースをデプロイします。
amplify pushストレージ操作でトランスファーアクセラレーションを使用する
対応するpluginOptionsで"useAccelerateEndpoint"をtrueに設定することで、以下のいずれかのStorage APIでトランスファーアクセラレーションを使用できます:
getUrl(path:options:)downloadData(path:options:)downloadFile(path:local:options:)uploadData(path:data:options:)uploadFile(path:local:options:)getUrl(key:options:)(非推奨)downloadData(key:options:)(非推奨)downloadFile(key:local:options:)(非推奨)uploadData(key:data:options:)(非推奨)uploadFile(key:local:options:)(非推奨)
たとえば、トランスファーアクセラレーションを使用してファイルをアップロードする場合:
let uploadTask = Amplify.Storage.uploadFile( path: .fromString("public/example/key"), local: aLocalFile, options: .init( pluginOptions: [ "useAccelerateEndpoint": true ] ))
let data = try await uploadTask.valuelet uploadTask = Amplify.Storage.uploadFile( key: aKey, local: aLocalFile, options: .init( pluginOptions: [ "useAccelerateEndpoint": true ] ))
let data = try await uploadTask.value