Skip to main content
Blob Storage は https://s3-blob.squarecloud.app で S3 API に対応しています。カスタム endpoint を設定できるツールであれば動作します: aws-cli、boto3、AWS SDK for JavaScript、rclone、Cyberduck、およびほとんどのバックアップツールです。

認証情報

S3 ツールはアクセスキーのペアでリクエストに署名します。ペアは S3 認証情報から取得します。
このペアは API キーから導出されます。個別に管理する必要はありません。キーを取り消したり再生成したりすると、ペアにも同じことが起こり、ペアはキーと同じスコープを持ちます。blob:read のみを持つキーからは読み取り専用のペアが得られます。 API キーが変わらない限りペアも変わらないため、一度取得してシークレットマネージャーまたは環境変数に保管してください。起動のたびにこのルートを呼び出さないでください: 受け付けるのは 1 時間に 10 リクエストです。

バケット

アカウントからは 3 つの固定バケットが見えます。バケットの作成や削除はできません。 public または private バケット内のキーは、ユーザー id を含まないオブジェクトのパスです。public バケット内の images/logo.png は、REST API 上のオブジェクト pub/<user_id>/images/logo.png にあたります。S3 経由で書き込んだファイルは REST API とダッシュボードに表示され、その逆も同様です。

設定

boto3 で署名付き URL を生成するには signature_version="s3v4" が必要です。指定しないと、generate_presigned_url は古い SigV2 で署名し、ゲートウェイはそれを受け付けません。署名付き URL の有効期間は最大 7 日 (604800 秒) です。
ゲートウェイのレスポンスがエッジでキャッシュされることはありません。署名付き URL は、有効期限が切れた時点、API キーが取り消された時点、またはオブジェクトが削除された時点で、ただちに機能しなくなります。

サポートされる操作

バケットポリシー、CORS、ライフサイクル、ウェブサイト、暗号化、オブジェクトロック、バージョン、ログ記録、通知、レプリケーション、ACL とタグの書き込み、partNumber による GET、ブラウザの POST フォームによるアップロードは 501 NotImplemented を返します。ライフサイクルルールにはアカウント設定を使用してください。

キー

  • キーはリテラルなパスです。キーの長さは約 1000 バイトまでです: 1024 バイトの上限にはアカウントのプレフィックスも含まれます。それより長いキーには KeyTooLongError が返され、そのメッセージに使用できる正確なバイト数が示されます。セグメントを空、.、.. にすることはできません。
  • / で終わる 0 バイトのキーはフォルダーマーカーであり、AWS コンソールがフォルダーを作成する方法と同じです。
  • 配信される Content-Type は、REST API と同様に拡張子から決定されます。実行ファイルは InvalidArgument で拒否され、.html、.svg、.xml はダウンロードとして配信されます。

メタデータ、キャッシュ、有効期限

  • x-amz-meta-* ヘッダーは Pro と Enterprise で保持されます (最大 5 キー、512 バイト。超えると MetadataTooLarge)。その他のプランでは破棄されます。
  • Cache-Control と Content-Disposition は保持されます。キャッシュしない Cache-Control (no-cache、no-store、max-age=0) は、Enterprise 以外では AccessDenied で拒否されます。
  • プレフィックスごとのルールは、自動削除を含め、S3 経由で書き込まれたオブジェクトにも適用されます。ルールの max_size と extensions は、REST のアップロードにのみ適用されます。

制限

制限を超えると、ゲートウェイは SlowDown (HTTP 503) を返し、AWS SDK は自動的にバックオフして再試行します。S3 リクエストはプランの API リクエスト制限にカウントされません。 ループで再試行する前に、キーペアを確認してください。無効な認証情報を送信しすぎた IP は数分間ブロックされます。

パートサイズ

マルチパート対応のツールは大きなファイルを自動的に分割します。各パートは 80 MB 以下にしてください。AWS CLI (8 MB) と rclone (5 MB) のデフォルトはすでにこの範囲内です。
書き込みには有料プランが必要です。有料プランがない場合、および読み取り専用の legacy バケットでは、書き込みは AccessDenied を返します。ストレージ枠は REST API と同様に適用されます。

エラー

ゲートウェイは標準の S3 XML エラーを返すため、SDK はそれらをネイティブに処理します。