転送アクセラレーションを使用する
転送アクセラレーションを有効にすると、エンドユーザーデバイスと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ストレージ操作で転送アクセラレーションを使用する
以下のAPIを呼び出すときに転送アクセラレーションを使用できます:
getUrldownloadDatadownloadFileuploadDatauploadFile
対応するStorage S3プラグインオプションでuseAccelerateEndpointをtrueに設定して、加速S3エンドポイントを操作に適用します。例えば、転送アクセラレーションを使用してファイルをアップロードします:
import 'package:amplify_storage_s3/amplify_storage_s3.dart';
Future<void> uploadFileUsingAcceleration(String filePath, String path) async { final localFile = AWSFile.fromPath(filePath); try { final uploadFileOperation = Amplify.Storage.uploadFile( localFile: localFile, path: const StoragePath.fromString(path), options: const StorageUploadFileOptions( pluginOptions: S3UploadFilePluginOptions( useAccelerateEndpoint: true, ), ), );
final result = await uploadFileOperation.result; safePrint('Uploaded file: ${result.uploadedItem.path}'); } on StorageException catch (error) { safePrint('Something went wrong uploading file: ${error.message}'); }}