Looking for how to use this in your app?See Frontend Libraries →
S3 リソースを拡張する
Amplify で生成された S3 リソースの場合
Amplify Storage は、ストレージ機能を提供するために Amazon S3 リソースを生成します。AWS Cloud Developer Kit (AWS CDK) を使用して、基盤となる Amazon S3 リソースにアクセスして、バックエンド設定をさらにカスタマイズできます。
例 - Transfer Acceleration を有効にする
以下は、バケットで Transfer Acceleration を有効にする方法の例です(CDK ドキュメント)。バケットで Transfer Acceleration を有効にするには、次のように L2 CDK コンストラクトから L1 CDK コンストラクトをアンラップする必要があります。
import * as s3 from 'aws-cdk-lib/aws-s3';import { defineBackend } from '@aws-amplify/backend';import { storage } from './storage/resource';
const backend = defineBackend({ storage});
const s3Bucket = backend.storage.resources.bucket;
const cfnBucket = s3Bucket.node.defaultChild as s3.CfnBucket;
cfnBucket.accelerateConfiguration = { accelerationStatus: "Enabled" // 'Suspended' if you want to disable transfer acceleration}高速化された S3 エンドポイントを使用してファイルをアップロードする
AWSS3StorageUploadFileOptions で useAccelerateEndpoint パラメータを true に設定することで、高速化された S3 エンドポイントに切り替えます。
AWSS3StorageUploadFileOptions awsS3StorageUploadFileOptions = AWSS3StorageUploadFileOptions.builder().setUseAccelerateEndpoint(true).build(); Amplify.Storage.uploadFile( StoragePath.fromString("public/example"), file awsS3StorageUploadFileOptions, result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getPath()), storageFailure -> Log.e("MyAmplifyApp", "Upload failed", storageFailure));val awsS3StorageUploadFileOptions = AWSS3StorageUploadFileOptions.builder(). setUseAccelerateEndpoint(true). build() Amplify.Storage.uploadFile( StoragePath.fromString("public/example"), file awsS3StorageUploadFileOptions, { Log.i("MyAmplifyApp", "Successfully uploaded: " + it.getPath()) }, { Log.e("MyAmplifyApp", "Upload failed", it) })val awsS3StorageUploadFileOptions = AWSS3StorageUploadFileOptions.builder(). setUseAccelerateEndpoint(true). build()val upload = Amplify.Storage.uploadFile(StoragePath.fromString("public/example"), file, awsS3StorageUploadFileOptions)try { val result = upload.result() Log.i("MyAmplifyApp", "Successfully uploaded: ${result.path}")} catch (error: StorageException) { Log.e("MyAmplifyApp", "Upload failed", error)}AWSS3StorageUploadFileOptions awsS3StorageUploadFileOptions = AWSS3StorageUploadFileOptions.builder().setUseAccelerateEndpoint(true).build();RxProgressAwareSingleOperation<StorageUploadFileResult> rxUploadOperation = RxAmplify.Storage.uploadFile(StoragePath.fromString("public/example"), file, awsS3StorageUploadFileOptions);rxUploadOperation .observeResult() .subscribe( result -> Log.i("MyAmplifyApp", "Successfully uploaded: " + result.getPath()), error -> Log.e("MyAmplifyApp", "Upload failed", error) );詳細は CDK のエスケープハッチ をご覧ください。