このページは
@squarecloud/blob v4 を解説しています。v3 からアップグレードする場合は、v3 → v4 移行ガイドをお読みください。@squarecloud/blob は、Square Cloud Blob Storage の公式 JavaScript SDK です。すべての Blob API endpoint と S3 ゲートウェイをカバーします。
要件
- Node.js 20 以降、または任意のモダンブラウザ。SDK が使用するのは
fetch、FormData、Blobだけです。 - ESM と CommonJS の両方で提供され、ランタイム依存関係はゼロです。
@aws-sdk/client-s3はオプションの peer dependency で、s3()を呼び出す場合にのみ必要です。
インストール
- npm
- yarn
- pnpm
- bun
クライアントの作成
- ESM / TypeScript
- CommonJS
コンストラクタ
認証情報
認証情報はBearer プレフィックスなしで、Authorization ヘッダーにそのまま送信されます。
設定できないもの
maxRetries が唯一のオプションです。クライアントは次のものを受け付けません:
- ベース URL。
https://blob.squarecloud.app/v1/に固定されています。 - カスタム
fetch。 リクエストにはグローバルのfetchが使われます。 - タイムアウトや
AbortSignal。 呼び出しはfetchが待機する限り続き、キャンセルする方法はありません。 - カスタムヘッダー。
メソッド
すべてのメソッドはプレーンなデータを返します (クラスはありません)。ただしs3() は S3Client を返します。オプションと結果には API のフィールド名 (主に snake_case: security_hash、expires_at) がそのまま使われるため、Blob API リファレンスをそのまま適用できます。
パッケージは
SquareCloudBlobError、BlobErrorCode 型、すべてのオプション型と結果型 (PutOptions、PutResult、ListedObject、ObjectInfo、Share、Rule など) もエクスポートしています。エラーを参照してください。
オブジェクト ID
すべてのオブジェクトは不透明な ID で識別されます。たとえば公開オブジェクトならpub/...、プライベートオブジェクトなら prv/... です。
- ID は返されたとおりに保存してください。 手作業で組み立てたり、パースしたりしないでください。
privateやexpireを変更すると ID が変わります。 保存している ID は、必ずupdate()が返す ID で置き換えてください。- URL を組み立てる代わりに、レスポンスの
urlを使ってください。プライベートオブジェクトはurl: nullです。リンクはdownloadUrl()または共有で取得します。

