Need to configure your backend?See Build a Backend →
ファイルのコピー
copy APIを使用して、ストレージバケット内の既存ファイルを別のパスにコピーできます。
copyメソッドは既存ファイルを指定されたパスに複製し、正常に完了時にオブジェクト{path: 'destPath'}を返します。
import { copy } from 'aws-amplify/storage';
const copyFile = async () => { try { const response = await copy({ source: { path: `album/2024/${encodeURIComponent('#1.jpg')}`, // または、path: ({identityId}) => `album/${identityId}/${encodeURIComponent('#1.jpg')` }, destination: { path: 'shared/2024/#1.jpg', // または、path: ({identityId}) => `shared/${identityId}/#1.jpg` }, }); } catch (error) { console.error('Error', err); }};バケットを指定するか、バケット/リージョン間でコピーする
bucketオプションを指定することで、特定のバケットへのcopy操作を実行することもできます。このオプションは、Amplify Backendで割り当てられたバケットの名前を表す文字列、またはコンソールから指定されたバケット名とリージョンを指定するオブジェクトのいずれかです。
import { copy } from 'aws-amplify/storage';
const copyFile = async () => { try { const response = await copy({ source: { path: 'album/2024/1.jpg', // Amplify Backendで割り当てられた名前またはコンソールのバケット名と関連リージョンを使用して // ターゲットバケットを指定する bucket: 'assignedNameInAmplifyBackend', expectedBucketOwner: '123456789012' }, destination: { path: 'shared/2024/1.jpg', // Amplify Backendで割り当てられた名前またはコンソールのバケット名と関連リージョンを使用して // ターゲットバケットを指定する bucket: { bucketName: 'generated-second-bucket-name', region: 'us-east-2' }, expectedBucketOwner: '123456789013' } }); } catch (error) { console.error('Error', error); }};sourceおよびdestinationオプション
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
| path | string | ({ identityId }) => string | 必須 | ファイルをコピーまたはコピー元にするソースおよびdestinationバケット内のパスを表す文字列またはコールバック。sourceのパスの各セグメントはURIエンコードする必要があります。 |
| bucket | string | { bucketName: string; region: string; } | Amplify設定のデフォルトバケットとリージョン | Amplify Backendで割り当てられたターゲットバケットの名前を表す文字列、またはコンソールから指定されたバケット名とリージョンを指定するオブジェクト。 追加のストレージバケットを設定するで詳細を確認してください。 |
| eTag | string | オプション | コピーソースオブジェクトのエンティティタグ(ETag)値。ETagが指定されたタグと一致する場合のみオブジェクトをコピーします。 |
| notModifiedSince | Date | オプション | ソースオブジェクトが指定された時刻以降に変更されていない場合、コピーします。 これは eTagが指定されていない場合のみ評価されます |
| expectedBucketOwner | string | オプション | source.expectedBucketOwner: ソースバケットを所有するアカウントID。destination.expectedBucketOwner: destinationバケットを所有するアカウントID。 |