tencent cloud

Cloud Object Storage

동향 및 공지
릴리스 노트
제품 공지
제품 소개
제품 개요
기능 개요
적용 시나리오
제품 장점
기본 개념
리전 및 액세스 도메인
규격 및 제한
제품 요금
과금 개요
과금 방식
과금 항목
프리 티어
과금 예시
청구서 보기 및 다운로드
연체 안내
FAQ
빠른 시작
콘솔 시작하기
COSBrowser 시작하기
사용자 가이드
요청 생성
버킷
객체
데이터 관리
일괄 프로세스
글로벌 가속
모니터링 및 알람
운영 센터
데이터 처리
스마트 툴 박스 사용 가이드
데이터 워크플로
애플리케이션 통합
툴 가이드
툴 개요
환경 설치 및 설정
COSBrowser 툴
COSCLI 툴
COSCMD 툴
COS Migration 툴
FTP Server 툴
Hadoop 툴
COSDistCp 툴
HDFS TO COS 툴
온라인 도구 (Onrain Dogu)
자가 진단 도구
실습 튜토리얼
개요
액세스 제어 및 권한 관리
성능 최적화
AWS S3 SDK를 사용하여 COS에 액세스하기
데이터 재해 복구 백업
도메인 관리 사례
이미지 처리 사례
COS 오디오/비디오 플레이어 사례
데이터 다이렉트 업로드
데이터 보안
데이터 검증
빅 데이터 사례
COS 비용 최적화 솔루션
3rd party 애플리케이션에서 COS 사용
마이그레이션 가이드
로컬 데이터 COS로 마이그레이션
타사 클라우드 스토리지 데이터를 COS로 마이그레이션
URL이 소스 주소인 데이터를 COS로 마이그레이션
COS 간 데이터 마이그레이션
Hadoop 파일 시스템과 COS 간 데이터 마이그레이션
데이터 레이크 스토리지
클라우드 네이티브 데이터 레이크
메타데이터 가속
데이터 레이크 가속기 GooseFS
데이터 처리
데이터 처리 개요
이미지 처리
미디어 처리
콘텐츠 조정
파일 처리
문서 미리보기
장애 처리
RequestId 가져오기
공용 네트워크로 COS에 파일 업로드 시 속도가 느린 문제
COS 액세스 시 403 에러 코드 반환
리소스 액세스 오류
POST Object 자주 발생하는 오류
보안 및 컴플라이언스
데이터 재해 복구
데이터 보안
액세스 관리
자주 묻는 질문
인기 질문
일반 문제
과금
도메인 규정 준수 문제
버킷 설정 문제
도메인 및 CDN 문제
파일 작업 문제
로그 모니터링 문제
권한 관리
데이터 처리 문제
데이터 보안 문제
사전 서명 URL 관련 문제
SDK FAQ
툴 관련 문제
API 관련 문제
Agreements
Service Level Agreement
개인 정보 보호 정책
데이터 처리 및 보안 계약
연락처
용어집
문서Cloud Object Storage실습 튜토리얼AWS S3 SDK를 사용하여 COS에 액세스하기

AWS S3 SDK를 사용하여 COS에 액세스하기

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2025-01-24 13:10:25

소개

Cloud Object Storage(COS)는 AWS S3 호환 API를 제공합니다. 데이터를 S3에서 COS로 마이그레이션한 후에 간단한 설정 수정만으로 클라이언트 애플리케이션을 손쉽게 COS 서비스와 호환 사용할 수 있습니다. 본 문서는 다양한 개발 플랫폼의 S3 SDK 적용 절차를 소개합니다. 이 추가 적용 절차가 끝나면 S3 SDK 인터페이스를 사용해 COS 파일에 액세스할 수 있습니다.

준비 작업

Signing Up하고 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)에서 다음 설정을 추가합니다.- 구성 파일(파일 위치는 ~/.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);


도움말 및 지원

문제 해결에 도움이 되었나요?

피드백