Cloud Object Storage(COS)は署名付きURLを使用したオブジェクトのアップロード、ダウンロードをサポートしています。その原理は、URLに署名を埋め込んで署名付きリンクを生成するものです。署名の有効期限によって、署名付きURLの有効期間を管理することができます。
署名付きURLを使用してダウンロードを行い、一時URLを取得してファイル、フォルダの一時的な共有に用いることができます。あるいは長い署名有効期間を設定することで、長期間有効なURLを取得し、ファイルの長期的な共有に用いることもできます。詳細については、ファイルの共有をご参照ください。
また、署名付きURLを使用してアップロードを行うこともできます。詳細については、ファイルのアップロードをご参照ください。
COSはオブジェクトの共有をサポートしています。署名付きURLを使用することで、ファイルやフォルダを他のユーザーと期限付きで共有することができます。署名付きURLの原理は、署名をオブジェクトURLに埋め込んで結合するものです。その後の署名生成アルゴリズムについては、リクエスト署名をご参照ください。
バケットはデフォルトではプライベート読み取りであり、オブジェクトのURLから直接ダウンロードしようとするとアクセスエラーが表示されます。オブジェクトURLの後に有効な署名を結合すると、署名付きURLを取得できます。署名にはID情報が含まれるため、署名付きURLはオブジェクトのダウンロードに用いることができます。
説明:やむを得ずパーマネントキーを使用して署名付きURLを生成する場合は、リスク回避のため、パーマネントキーの権限の範囲をアップロードまたはダウンロード操作のみに限定することをお勧めします。また、生成した署名の有効期間を、今回のアップロードまたはダウンロード操作に必要な最短の期限までに設定し、指定した署名付きURLの有効期限が過ぎるとリクエストが中断するようにします。失敗したリクエストは新しい署名を申請後に再度実行する必要があります。中断からの再開はサポートしていません。
// オブジェクトURL
https://test-12345678.cos.ap-beijing.myqcloud.com/test.png
// 署名付きURL(署名値を結合したオブジェクトURL)
https://test-12345678.cos.ap-beijing.myqcloud.com/test.png?q-sign-algorithm=sha1&q-ak=xxxxx&q-sign-time=1638417770;1638421370&q-key-time=1638417770;1638421370&q-header-list=host&q-url-param-list=&q-signaturexxxxxfxxxxxx6&x-cos-security-token=xxxxxxxxxxxx
次にファイル共有の方法をいくつかご紹介します。これらの方法は本質的にはすべて署名を自動生成し、オブジェクトURLの後ろに結合することで、ダウンロードやプレビューに直接用いることができる一時リンクを生成するものです。
コンソールまたはCOSBrowserツールによってオブジェクトの一時リンクをクイック取得することができます。
ドキュメントファイルリンクの発行を参照し、ルートアカウントキーを使用して最長2時間の一時リンクを取得することができます。サブアカウントキーを使用する場合は、最長1.5日間の一時リンクを取得することができます。
適するケース:プログラミングに不慣れなユーザー
操作手順は次のとおりです。
適するケース:一時リンクを一括取得したい場合、プログラミングの基礎を習得したユーザー
コンソールおよびCOSBrowserから取得する一時リンクは有効期間が短いため、より長時間の一時リンクが必要な場合は、SDKを使用して署名付きURLを生成し、署名の有効期間の管理を実現することもできます。生成メソッドについては署名付きURLによるダウンロード権限承認を参照し、使いやすい開発言語を選択してください。
署名付きURLの生成には一時キーまたはパーマネントキーを使用することができます。両者の違いは、一時キーの最長有効期間は36時間以内であり、パーマネントキーには有効期限がないという点です。このことは署名付きURLの有効期間に間接的な影響を与えます。
パーマネントキーを使用した署名付きURLの生成(任意の期間)
パーマネントキーには有効期限がないため、署名付きURLの有効期間は設定した署名の有効期間によって決まります。SDKの署名付きURL生成メソッドを直接呼び出すことができます。操作手順は次のとおりです。
Android SDK | C SDK | C++ SDK | .NET SDK |
Go SDK | iOS SDK | Java SDK | JavaScript SDK |
Node.js SDK | PHP SDK | Python SDK | ミニプログラムSDK |
一時キーを使用した署名付きURLの生成(36時間以内)
フロントエンドデータの直接転送のケースでは、一時キーの使用が必要な場合が多くあります。一時キーの説明と生成ガイドについては次をご参照ください。
一時キーは最長36時間までであり、署名付きURLの有効期間は設定した署名の有効期間と一時キーの有効期間の最小値から決定されます。設定した署名の有効期間をX、一時キーの有効期間をY、リンクの実際の有効期間をTとします。
T=min(X,Y)。X<=36のため、T<=36です。
一時キーを使用して署名付きURLを生成するには、次の2つの手順が必要です。
x-cos-security-token
も含める必要があることに注意が必要です。詳細については、下記の各言語のSDKドキュメントをご参照ください。Android SDK | C SDK | C++ SDK | .NET SDK |
Go SDK | iOS SDK | Java SDK | JavaScript SDK |
Node.js SDK | PHP SDK | Python SDK | ミニプログラムSDK |
フォルダは一種の特殊なオブジェクトであり、コンソールまたはCOSBrowser ツールを使用してフォルダを共有することができます。詳細については、フォルダの共有をご参照ください。
第三者がオブジェクトをバケットにアップロードできるようにし、なおかつ相手にCAMアカウントまたは一時キーなどの方法を使用させたくない場合は、署名付きURLを使用して署名を第三者に渡し、一時的なアップロード操作を完了させることができます。有効な署名付きURLを受領した人は誰でもオブジェクトをアップロードできます。
説明:やむを得ずパーマネントキーを使用して署名付きURLを生成する場合は、リスク回避のため、パーマネントキーの権限の範囲をアップロードまたはダウンロード操作のみに限定することをお勧めします。また、生成した署名の有効期間を、今回のアップロードまたはダウンロード操作に必要な最短の期限までに設定し、指定した署名付きURLの有効期限が過ぎるとリクエストが中断するようにします。失敗したリクエストは新しい署名を申請後に再度実行する必要があります。中断からの再開はサポートしていません。
この記事はお役に立ちましたか?