Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.
Gen1 DocsLegacy

Page updated May 22, 2024

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 のエスケープハッチ をご覧ください。