Squid ストレージ
ストレージバケット内のファイルを安全にアップロード・ダウンロードする
Squid のストレージ機能を使用すると、Squid Client SDK を介してファイルを管理し、任意のクライアントからファイルにアクセスできます。シームレスな開発およびユーザー体験のために、Squid Backend SDK を使用してファイルを保護してください。アプリケーション作成時には、Squid が提供する組み込みのストレージインスタンスを使用するか、独自の AWS ストレージバケットを接続してください。
以下のコネクタを通じて Squid ストレージにアクセスできます:
接続後は、Squid Client SDK を介してストレージコネクタを利用できます。
ストレージインスタンスへアクセスする
Squid ストレージインスタンスにアクセスするには、Squid インスタンスで .storage()
を呼び出します。組み込みのストレージバケットの場合、パラメーターなしでこのメソッドを呼び出してください。他のストレージコネクタの場合は、コネクタ ID を渡します。
squid.storage(); // accesses the built-in storage bucket
squid.storage('YOUR_CONNECTOR_ID'); // accesses a storage connector
ファイルのアップロード
ファイルをストレージにアップロードするには、uploadFile()
メソッドを呼び出し、ファイルを保存するストレージバケット内のディレクトリパスと、File
または BlobAndFileName
型のファイルを渡します。ブラウザの場合は File
型を、Node.js アプリケーションの場合は BlobAndFileName
型を使用してください。
await squid.storage().uploadFile('dir/path/in/bucket', yourFile);
BlobAndFileName
は以下の形式です:
{
blob: Blob;
name: string;
}
ファイルのダウンロード URL の取得
ファイルをダウンロードするには、getDownloadUrl()
メソッドを使用してダウンロード URL を生成します。ファイルのパスと、オプションで秒単位の有効期限を渡してください。デフォルトの有効期限は 3600 秒です。この関数は、URL を含むオブジェクトに解決される Promise を返します。
const urlResponse = await squid
.storage()
.getDownloadUrl('path/in/bucket/image.jpg', 7200);
console.log(urlResponse.url); // "https://prod-us-east-1-squid-storage.s3.amazonaws.com/abcd123..."
ファイルのメタデータの取得
ファイルに関するメタデータを読み取るには、getFileMetadata()
メソッドを使用し、ファイルのパスを渡してください。
const metadata = await squid
.storage()
.getFileMetadata('path/in/bucket/image.jpg');
console.log(metadata);
/*
{
filename: 'image.jpg',
size: 120672,
lastModified: Mon Mar 11 2024 17:32:00 GMT-0500 (Central Daylight Time)
}
*/
ディレクトリ内容の一覧表示
指定したバケットディレクトリのすべての内容を一覧表示するには、listDirectoryContents
メソッドを使用し、バケットディレクトリのパスを渡してください。
const contents = await squid.storage().listDirectoryContents('path/in/bucket');
console.log(contents.directories);
/*
['documents/', 'contacts/']
*/
console.log(contents.files);
/*
[
{
filename: 'test.txt',
absoluteFilePathInBucket: 'path/in/bucket/test.txt',
lastModified: Mon Mar 11 2024 17:32:00 GMT-0500 (Central Daylight Time),
size: 9210
}, {
filename: 'image.jpg',
absoluteFilePathInBucket: 'path/in/bucket/image.jpg',
lastModified: Mon Mar 11 2024 17:34:16 GMT-0500 (Central Daylight Time),
size: 120672
},
]
*/
ファイルの削除
ファイルを削除するには、deleteFile()
メソッドを呼び出し、削除するファイルのパスを渡してください。
await squid.storage().deleteFile('path/in/bucket/image.jpg');
複数のファイルの削除
複数のファイルを削除するには、deleteFiles()
メソッドを使用し、ファイルパスの配列を渡してください。
await squid
.storage()
.deleteFiles(['path/in/bucket/image.jpg', 'path/in/bucket/test.txt']);
ストレージバケットのセキュリティ
デフォルトでは、ストレージバケットに対するすべてのアクションは拒否されます。ストレージバケットリソースへの承認済みのアクセスのみを許可するために、ストレージセキュリティ機能を使用してください。詳細については、secure a storage bucket documentation をご参照ください。