tencent cloud

Cloud Object Storage

最新情報とお知らせ
製品アップデート情報
製品のお知らせ
製品概要
製品概要
機能概要
応用シナリオ
製品の優位性
基本概念
リージョンとアクセスドメイン名
仕様と制限
製品の課金
課金概要
課金方式
課金項目
無料利用枠
記帳例
請求書の確認とダウンロード
お支払い遅れについて
よくある質問
クイックスタート
コンソールクイックスタート
COSBrowserクイックスタート
ユーザーガイド
リクエストの作成
バケット
オブジェクト
データ管理
バッチ処理
グローバルアクセラレーション
監視とアラーム
運用管理センター
データ処理
インテリジェントツールボックス使用ガイド
データワークフロー
アプリ統合
ツールガイド
ツール概要
環境のインストールと設定
COSBrowserツール
COSCLIツール
COSCMDツール
COS Migrationツール
FTP Serverツール
Hadoopツール
COSDistCpツール
HDFS TO COSツール
オンラインツール (Onrain Tsūru)
セルフ診断ツール
実践チュートリアル
概要
アクセス制御と権限管理
パフォーマンスの最適化
AWS S3 SDKを使用したCOSアクセス
データディザスタリカバリバックアップ
ドメイン名管理の実践
画像処理の実践
COSオーディオビデオプレーヤーの実践
データセキュリティ
データ検証
COSコスト最適化ソリューション
サードパーティアプリケーションでのCOSの使用
移行ガイド
サードパーティクラウドストレージのデータをCOSへ移行
データレークストレージ
クラウドネイティブデータレイク
メタデータアクセラレーション
データアクセラレーター GooseFS
データ処理
データ処理概要
画像処理
メディア処理
コンテンツ審査
ファイル処理
ドキュメントプレビュー
トラブルシューティング
RequestId取得の操作ガイド
パブリックネットワーク経由でのCOSへのファイルアップロード速度の遅さ
COSへのアクセス時に403エラーコードが返される
リソースアクセス異常
POST Objectの一般的な異常
セキュリティとコンプライアンス
データ災害復帰
データセキュリティ
クラウドアクセスマネジメント
よくある質問
よくあるご質問
一般的な問題
従量課金に関するご質問
ドメインコンプライアンスに関するご質問
バケット設定に関する質問
ドメイン名とCDNに関するご質問
ファイル操作に関するご質問
権限管理に関するご質問
データ処理に関するご質問
データセキュリティに関するご質問
署名付きURLに関するご質問
SDKクラスに関するご質問
ツール類に関するご質問
APIクラスに関するご質問
Agreements
Service Level Agreement
プライバシーポリシー
データ処理とセキュリティ契約
連絡先
用語集

AWS S3 SDKを使用したCOSアクセス

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-01-24 13:09:34

概要

Cloud Object Storage(COS)はAWS S3と互換性のあるAPIを提供しているため、データをS3からCOSに移行した後、簡単な設定変更を行うだけで、クライアントアプリケーションに簡単にCOSサービスとの互換性を持たせることができます。ここでは主に、各開発プラットフォームにおけるS3 SDKの適用の手順についてご説明します。適用手順の追加が完了すると、S3 SDKのインターフェースを使用してCOS上のファイルにアクセスできるようになります。

準備作業

Tencent Cloudアカウントの登録 が完了しており、なおかつ CAMコンソール 上でTencent CloudキーのSecretIDとSecretKeyを取得済みであることとします。
S3 SDKを統合済みで、正常に実行可能なクライアントアプリケーションがすでにあることとします。

Android

以下ではAWS Android SDK 2.14.2バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。端末からCOSへのアクセスについては、パーマネントキーをクライアントコード内に埋め込むと、開示されるリスクが極めて大きいため、STSサービスにアクセスして一時キーを取得することをお勧めします。詳細については、一時キーの生成および使用ガイド をご参照ください。

初期化

インスタンスを初期化する際、一時キープロバイダおよびEndpointを設定する必要があります。バケットの所在リージョンがap-guangzhouの場合を例にとります。
AmazonS3Client s3 = new AmazonS3Client(new AWSCredentialsProvider() {
@Override
public AWSCredentials getCredentials() {
// ここではバックエンドがSTSにリクエストし、一時キー情報を取得します
return new BasicSessionCredentials(
"<TempSecretID>", "<TempSecretKey>", "<STSSessionToken>"
);
}

@Override
public void refresh() {
//
}
});

s3.setEndpoint("cos.ap-guangzhou.myqcloud.com");

iOS

AWS iOS SDK 2.10.2バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。端末からCOSへのアクセスについては、パーマネントキーをクライアントコード内に埋め込むと、開示されるリスクが極めて大きいため、STSサービスにアクセスして一時キーを取得することをお勧めします。詳細については、一時キーの生成および使用ガイド をご参照ください。

1. AWSCredentialsProviderプロトコルの実装

-(AWSTask<AWSCredentials *> *)credentials{
// ここではバックエンドがSTSにリクエストし、一時キー情報を取得します
AWSCredentials *credential = [[AWSCredentials alloc]initWithAccessKey:@"<TempSecretID>" secretKey:@"<TempSecretKey>" sessionKey:@"<STSSessionToken>" expiration:[NSDate dateWithTimeIntervalSince1970:1565770577]];

return [AWSTask taskWithResult:credential];

}

- (void)invalidateCachedTemporaryCredentials{

}

2. 一時キープロバイダおよびEndpointの提供

バケットの所在リージョンがap-guangzhouの場合を例にとります。
NSURL* bucketURL = [NSURL URLWithString:@"http://cos.ap-guangzhou.myqcloud.com"];

AWSEndpoint* endpoint = [[AWSEndpoint alloc] initWithRegion:AWSRegionUnknown service:AWSServiceS3 URL:bucketURL];
AWSServiceConfiguration* configuration = [[AWSServiceConfiguration alloc]
initWithRegion:AWSRegionUSEast2 endpoint:endpoint
credentialsProvider:[MyCredentialProvider new]]; // MyCredentialProviderがAWSCredentialsProviderプロトコルを実装しました

[[AWSServiceManager defaultServiceManager] setDefaultServiceConfiguration:configuration];

Node.js

以下ではAWS JS SDK 2.509.0バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。

初期化

インスタンスを初期化する際にTencent CloudキーおよびEndpointを設定します。バケットの所在リージョンがap-guangzhouの場合のコードの例は次のようになります。
var AWS = require('aws-sdk');

AWS.config.update({
accessKeyId: "COS_SECRETID",
secretAccessKey: "COS_SECRETKEY",
region: "ap-guangzhou",
endpoint: 'https://cos.ap-guangzhou.myqcloud.com',
});

s3 = new AWS.S3({apiVersion: '2006-03-01'});

Java

以下ではAWS Java SDK 1.11.609バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。

1. AWSの設定および証明書ファイルを変更する

説明:
以下ではLinuxを例に、AWSの設定および証明書ファイルの変更を行います。
AWS SDKのデフォルトの設定ファイルは通常、ユーザーディレクトリ下にあります。設定および証明書ファイル をご参照ください。
設定ファイル(ファイルの位置は~/.aws/config)に次の設定情報を追加します。
[default]
s3 =
addressing_style = virtual
証明書ファイル(ファイルの位置は~/.aws/credentials)にTencent Cloudのキーを設定します。
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]

2. コードにEndpointを設定する

バケットの所在リージョンがap-guangzhouの場合のコードの例は次のようになります。
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(
"http://cos.ap-guangzhou.myqcloud.com",
"ap-guangzhou"))
.build();
V2バージョンのAWS Java SDKを使用している場合、コード例は以下の通りです:
S3Client s3Client = S3Client.builder()
.endpointOverride(URI.create("http://cos.ap-guangzhou.myqcloud.com"))
.region(Region.of("ap-guangzhou"))
.build();

Python

以下ではAWS Python SDK 1.9.205バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。

1. AWSの設定および証明書ファイルを変更する

説明:
以下ではLinuxを例に、AWSの設定および証明書ファイルの変更を行います。
AWS SDKのデフォルトの設定ファイルは通常、ユーザーディレクトリ下にあります。設定および証明書ファイル をご参照ください。
設定ファイル(ファイルの位置は~/.aws/config)に次の設定を追加します。
[default]
s3 =
signature_version = s3
addressing_style = virtual
証明書ファイル(ファイルの位置は~/.aws/credentials)にTencent Cloudのキーを設定します。
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]

2. コードにEndpointを設定する

バケットの所在リージョンがap-guangzhouの場合を例にとります。
client = boto3.client('s3', endpoint_url='https://cos.ap-guangzhou.myqcloud.com')

PHP

以下ではAWS PHP SDK 3.109.3バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。

1. AWSの設定および証明書ファイルを変更する

説明:
以下ではLinuxを例に、AWSの設定および証明書ファイルの変更を行います。
AWS SDKのデフォルトの設定ファイルは通常、ユーザーディレクトリ下にあります。設定および証明書ファイル をご参照ください。
設定ファイル(ファイルの位置は~/.aws/config)に次の設定を追加します。
[default]
s3 =
addressing_style = virtual
証明書ファイル(ファイルの位置は~/.aws/credentials)にTencent Cloudのキーを設定します。
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]

2. コードにEndpointを設定する

バケットの所在リージョンがap-guangzhouの場合を例にとります。
$S3Client = new S3Client([
'region' => 'ap-guangzhou',
'version' => '2006-03-01',
'endpoint' => 'https://cos.ap-guangzhou.myqcloud.com'
]);


.NET

以下ではAWS .NET SDK 3.3.104.12バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。

初期化

インスタンスを初期化する際にTencent CloudキーおよびEndpointを設定します。バケットの所在リージョンがap-guangzhouの場合を例にとります。
string sAccessKeyId = "COS_SECRETID";
string sAccessKeySecret = "COS_SECRETKEY";
string region = "ap-guangzhou";

var config = new AmazonS3Config() { ServiceURL = "https://cos." + region + ".myqcloud.com" };
var client = new AmazonS3Client(sAccessKeyId, sAccessKeySecret, config);


Go

aws-sdk-go

以下ではAWS Go SDK 1.21.9バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。

1. キーによってsessionを作成する

バケットの所在リージョンがap-guangzhouの場合を例にとります。
func newSession() (*session.Session, error) {
creds := credentials.NewStaticCredentials("COS_SECRETID", "COS_SECRETKEY", "")
region := "ap-guangzhou"
endpoint := "http://cos.ap-guangzhou.myqcloud.com"
config := &aws.Config{
Region: aws.String(region),
Endpoint: &endpoint,
S3ForcePathStyle: aws.Bool(true),
Credentials: creds,
// DisableSSL: &disableSSL,
}
return session.NewSession(config)
}

2. sessionによってserverを作成し、リクエストを送信する

sess, _ := newSession()
service := s3.New(sess)

// ファイルのアップロードの例
fp, _ := os.Open("yourLocalFilePath")
defer fp.Close()

ctx, cancel := context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
defer cancel()

service.PutObjectWithContext(ctx, &s3.PutObjectInput{
Bucket: aws.String("examplebucket-1250000000"),
Key: aws.String("exampleobject"),
Body: fp,
})

aws-sdk-go-v2

以下に、aws-sdk-go-v2バージョンのオブジェクトアップロードを例に、COSサービスにアクセスする方法を紹介します。
package main

import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/credentials"
"github.com/aws/aws-sdk-go-v2/service/s3"
"os"
"strings"
)

func main() {
// 環境変数SECRETIDとSECRETKEYからキーを取得する
creds := credentials.NewStaticCredentialsProvider(os.Getenv("SECRETID"), os.Getenv("SECRETKEY"), "") //キー
customResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) {
return aws.Endpoint{
PartitionID: "aws",
URL: "http://cos.ap-guangzhou.myqcloud.com",
SigningRegion: "ap-guangzhou",
}, nil

})

cfg, _ := config.LoadDefaultConfig(
context.TODO(),

config.WithCredentialsProvider(creds),
config.WithEndpointResolverWithOptions(customResolver))

s3Client := s3.NewFromConfig(cfg, func(o *s3.Options) {
o.UsePathStyle = false // virtual-host方式でアクセスする
})

input := &s3.PutObjectInput{
Body: strings.NewReader("xxxxxxx"),
Bucket: aws.String("test-1250000000"), //ストレージバケット名
Key: aws.String("test"), //オブジェクトキー
StorageClass: "STANDARD",
}

result, err := s3Client.PutObject(context.Background(), input)
if err != nil {
panic(err)
}
fmt.Println(result)



C++

以下ではAWS C++ SDK 1.7.68バージョンを例に、COSサービスにアクセスできるように適用する方法についてご説明します。

1. AWSの設定および証明書ファイルを変更する

説明:
以下ではLinuxを例に、AWSの設定および証明書ファイルの変更を行います。
AWS SDKのデフォルトの設定ファイルは通常、ユーザーディレクトリ下にあります。設定および証明書ファイル をご参照ください。
設定ファイル(ファイルの位置は~/.aws/config)に次の設定を追加します。
[default]
s3 =
addressing_style = virtual
証明書ファイル(ファイルの位置は~/.aws/credentials)にTencent Cloudのキーを設定します。
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]

2. コードにEndpointを設定する

バケットの所在リージョンがap-guangzhouの場合のコードの例は次のようになります。
Aws::Client::ClientConfiguration awsCC;
awsCC.scheme = Aws::Http::Scheme::HTTP;
awsCC.region = "ap-guangzhou";
awsCC.endpointOverride = "cos.ap-guangzhou.myqcloud.com";
Aws::S3::S3Client s3_client(awsCC);


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック