言語タイプ | コードインストールアドレス | コードサンプルアドレス |
Java | ||
.NET | ||
Go | ||
Node.js | ||
PHP | ||
Python |
入力パラメータ | 参考値 | 説明 | 必須 |
Region | 華北地区(北京)ap-beijing | 操作対象のリソースが属するリージョンは北京です。 | はい |
Name | test | カスタム呼び出し元の英語名はtestです。 | はい |
Policy | {"version":"2.0","statement":[{"effect":"allow","action":["name/cos:PutObject","name/cos:DeleteObject"],"resource":"*"}]} | ポリシー構文バージョンversionは「2.0」です。 宣言によって生じる結果effectは「許可」です。 許可される操作actionは「name/cos:PutObject」(オブジェクトのアップロード)、「name/cos:DeleteObject」(オブジェクトの削除)です。その他のインターフェースについては、CAMをサポートするCOS業務インターフェースをご参照ください。 権限付与の対象となる具体的なデータresource、および操作actionに対するすべてのリソースの操作権限を記述します。 | はい |
DurationSeconds | 3600 | 一時キーの有効期間を3600秒に指定します。指定しない場合、デフォルトは1800秒です。 | いいえ |
// githubで提供されているmaven統合メソッドに従ってjava sts sdkをインポートし、3.1.1以降のバージョンを使用します。import java.util.TreeMap;import com.tencent.cloud.CosStsClient;import com.tencent.cloud.Policy;import com.tencent.cloud.Response;import com.tencent.cloud.Statement;import com.tencent.cloud.cos.util.Jackson;public class demo {public static void main(String[] args) {TreeMap<String, Object> config = new TreeMap<String, Object>();try {//ここのSecretIdとSecretKeyは、一時キーを申請するために使用される永続的なアイデンティティ(メインアカウント、サブアカウントなど)を表しています。サブアカウントはバケットを操作する権限が必要です。String secretId = System.getenv("secretId");//ユーザーのSecretIdです。サブアカウントキーの使用を推奨します。最小権限の原則に従って権限を付与することで、利用リスクを低減してください。サブアカウントキーの取得については、https://www.tencentcloud.com/document/product/598/32675をご参照ください。String secretKey = System.getenv("secretKey");//ユーザーのSecretKeyです。サブアカウントキーの使用を推奨します。最小権限の原則に従って権限を付与することで、利用リスクを低減してください。サブアカウントキーの取得については、https://www.tencentcloud.com/document/product/598/32675をご参照ください。// ご自身のTencentCloud apiキーSecretIdに置き換えてください。config.put("secretId", secretId);// ご自身のTencentCloud apiキーSecretKeyに置き換えてください。config.put("secretKey", secretKey);// policyを初期化します。Policy policy = new Policy();// ドメイン名を設定します:// Tencent Cloud cvmを使用している場合、内部ドメイン名を設定できます。//config.put("host", "sts.internal.tencentcloudapi.com");// 一時キーの有効期間は秒単位で、デフォルトは1800秒です。現在、メインアカウントの最長有効期間は2時間(7200秒)、サブアカウントの最長有効期間は36時間(129600秒)です。config.put("durationSeconds", 1800);// ご自身のバケットに置き換えてください。config.put("bucket", "examplebucket-1250000000");// バケットの所在するリージョンに置き換えてください。config.put("region", "ap-chongqing");// 1つのstatementの構築を開始します。Statement statement = new Statement();// 宣言設定の結果は操作を許可します。statement.setEffect("allow");/*** キーの権限リスト。ここで、今回の一時キーに必要な権限を指定する必要があります。* 権限リストについては、https://www.tencentcloud.com/document/product/436/30580をご参照ください。* ルールは {project}:{interfaceName} です。* project:製品略称。cos関連の権限付与の値はcos、CI(データ処理)関連の権限付与の値はciです。* すべてのインターフェースへの権限付与は*で表します。例えば、cos:*、ci:*です。* 一連の操作権限を追加します:*/statement.addActions(new String[]{"cos:PutObject",// フォームアップロード、ミニプログラムアップロード"cos:PostObject",// マルチパートアップロード"cos:InitiateMultipartUpload","cos:ListMultipartUploads","cos:ListParts","cos:UploadPart","cos:CompleteMultipartUpload",// 処理関連のインターフェースは一般的にCI製品であり、権限ではciで始まります。// MPSタスクを作成します。"ci:CreateMediaJobs",// ファイル圧縮"ci:CreateFileProcessJobs"});/*** ここを許可されたパスプレフィックスに変更します。自社ウェブサイトのユーザーログイン状態に基づいて、アップロードを許可する具体的なパスを判断できます。* リソース式ルールは、cos(オブジェクトストレージ)とci(データ処理)の2種類に分かれます。* データ処理および審査関連のインターフェースには、ciリソース権限を付与する必要があります。* cos : qcs::cos:{region}:uid/{appid}:{bucket}/{path}* ci : qcs::ci:{region}:uid/{appid}:bucket/{bucket}/{path}* 典型的な{path}権限付与シナリオをいくつか挙げます:* 1、すべてのオブジェクトへのアクセスを許可します:「*」* 2、指定されたオブジェクトへのアクセスを許可します:「a/a1.txt」、「b/b1.txt」* 3、指定されたプレフィックスを持つオブジェクトへのアクセスを許可します:「a*」、「a/*」、「b/*」* 「*」を入力すると、ユーザーはすべてのリソースにアクセスできるようになります。業務上必要な場合を除き、最小権限の原則に従ってユーザーに適切なアクセス権限範囲を付与してください。** 例:examplebucket-1250000000バケットディレクトリ内のすべてのリソースをcosとciに権限付与します。2つのResourceを権限付与します。*/statement.addResources(new String[]{"qcs::cos:ap-chongqing:uid/1250000000:examplebucket-1250000000/*","qcs::ci:ap-chongqing:uid/1250000000:bucket/examplebucket-1250000000/*"});// 1つのstatementをpolicyに追加します。// 複数追加できます。policy.addStatement(statement);// PolicyのサンプルをStringに変換します。任意のjson変換方式を使用できますが、ここでは本SDKに組み込まれた推奨方式を使用します。config.put("policy", Jackson.toJsonPrettyString(policy));Response response = CosStsClient.getCredential(config);System.out.println(response.credentials.tmpSecretId);System.out.println(response.credentials.tmpSecretKey);System.out.println(response.credentials.sessionToken);} catch (Exception e) {e.printStackTrace();throw new IllegalArgumentException("no valid secret !");}}}
フィールド | 参考値 | 説明 | 必須 |
secretId | 実際に取得したSecretIdに準じます。 | はい | |
secretKey | 実際に取得したSecretKeyに準じます。 | はい | |
durationSeconds | 1800 | 一時キーの有効期間を1800秒に指定します。 | いいえ |
bucket | examplebucket-1250000000 | 実際のバケット名に準じてください。 | はい |
region | ap-guangzhou | 実際のバケットの所在リージョンに準じてください。 | はい |
allowPrefixes | "*" | すべてのオブジェクトへのアクセスを許可します。業務上必要な場合を除き、最小権限の原則に従ってユーザーに適切なアクセス権限範囲を付与してください。 | はい |
allowActions | "cos:PutObject", "cos:PostObject", "cos:InitiateMultipartUpload", "cos:ListMultipartUploads", "cos:ListParts", "cos:UploadPart", "cos:CompleteMultipartUpload", 処理関連のインターフェースは、通常CI製品の権限であり、権限名は「ci」で始まります。 "ci:CreateMediaJobs", "ci:CreateFileProcessJobs" | PutObject:オブジェクトをアップロードします。 PostObject:フォームによるオブジェクトのアップロード InitiateMultipartUpload:マルチパートアップロードタスクを初期化します。 ListMultipartUploads:マルチパートアップロードタスクを検索します。 ListParts:アップロード済みのチャンクを検索します。 UploadPart:オブジェクトのチャンクをアップロードします。 CompleteMultipartUpload:マルチパートアップロードタスクを完了します。 CreateMediaJobs:MPSタスクを作成します。 CreateFileProcessJobs:ファイル圧縮 | はい |
// githubで提供されているmaven統合方式に従ってcos xml java sdkをインポートします。import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qcloud.cos.auth.BasicSessionCredentials; import com.qcloud.cos.auth.COSCredentials; import com.qcloud.cos.exception.CosClientException; import com.qcloud.cos.exception.CosServiceException; import com.qcloud.cos.model.ObjectMetadata; import com.qcloud.cos.model.PutObjectRequest; import com.qcloud.cos.model.PutObjectResult; import com.qcloud.cos.region.Region; import java.io.File;public class Demo {public static void main(String[] args) throws Exception {// ユーザー基本情報String tmpSecretId = "COS_SECRETID"; // STSインターフェースから返された一時SecretIdに置き換えてください。String tmpSecretKey = "COS_SECRETKEY"; // STSインターフェースから返された一時SecretKeyに置き換えてください。String sessionToken = "Token"; // STSインターフェースから返された一時Tokenに置き換えてください。// 1 ユーザー認証情報(secretId, secretKey)を初期化します。COSCredentials cred = new BasicSessionCredentials(tmpSecretId, tmpSecretKey, sessionToken);// 2 bucketリージョンを設定します。詳細については、COSリージョン https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1 をご参照ください。ClientConfig clientConfig = new ClientConfig(new Region("ap-guangzhou"));// 3 cosクライアントを生成します。COSClient cosclient = new COSClient(cred, clientConfig);// バケット名にはappidを含める必要があります。String bucketName = "examplebucket-1250000000";String key = "exampleobject";// オブジェクトをアップロードします。20M以下のファイルにはこのインターフェースを使用することをお勧めします。File localFile = new File("src/test/resources/text.txt");PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);// x-cos-security-token headerフィールドを設定します。ObjectMetadata objectMetadata = new ObjectMetadata();objectMetadata.setSecurityToken(sessionToken);putObjectRequest.setMetadata(objectMetadata);try {PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);// 成功の場合:putobjectResultはファイルのetagを返します。String etag = putObjectResult.getETag();} catch (CosServiceException e) {//失敗の場合、CosServiceExceptionがスローされます。e.printStackTrace();} catch (CosClientException e) {//失敗の場合、CosClientExceptionがスローされます。e.printStackTrace();}// クライアントを閉じます。cosclient.shutdown();}}
フィールド | 参考値 | 説明 |
COS_SECRETID | 実際に取得したSecretIdに準じます。 | STSインターフェースから返された一時的なSecretIdに置き換えてください。 |
COS_SECRETKEY | 実際に取得したSecretKeyに準じます。 | STSインターフェースから返された一時的なSecretKeyに置き換えてください。 |
Token | 実際に取得したTokenに準じます。 | STSインターフェースから返された一時的なTokenに置き換えてください。 |
new Region | ap-guangzhou | 実際のバケットの所在リージョンに準じてください。 |
bucketName | examplebucket-1250000000 | 実際のバケット名に準じてください。 |
key | exampleobject | 例:/test/demo.txt、アップロード後のオブジェクトの位置は/testで、名前はdemo.txtです。 |
new File | src/test/resources/text.txt | アップロードするオブジェクトのローカル上の位置はsrc/test/resources/で、ファイル名はtest、形式はtxtです。 |
フィードバック