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 エンドポイントを使用してファイルをアップロードする
次の Storage API のいずれかに対応する pluginOptions で "useAccelerateEndpoint" を true に設定することで、転送高速化を使用できます。
getUrl(key:options:)downloadData(key:options:)downloadFile(key:local:options:)uploadData(key:data:options:)uploadFile(key:local:options:)
例えば、転送高速化を使用してファイルをアップロードする場合:
let uploadTask = Amplify.Storage.uploadFile( key: aKey, local: aLocalFile, options: .init( pluginOptions: [ "useAccelerateEndpoint": true ] ))
let data = try await uploadTask.value詳細は CDK のエスケープハッチ をご覧ください。