릴리스 노트
제품 공지
php -v 명령어를 통해 현재의 PHP 버전을 확인할 수 있습니다.php -m 명령어를 통해 cURL 확장 설치 여부를 확인할 수 있습니다.sudo apt-get install php-curl
sudo yum install php-curl
curl -sS https://getcomposer.org/installer | php
composer.json인 파일을 생성합니다. 내용은 다음과 같습니다.{"require": {"qcloud/cos-sdk-v5": ">=2.0"}}
php composer.phar install
>= 7.2.5인 경우 guzzle7 버전을 자동으로 다운로드하고, 그렇지 않으면 guzzle6 버전을 다운로드합니다.require '/path/to/sdk/vendor/autoload.php';
>= 5.6 및 <7.2.5인 경우 cos-sdk-v5-6.phar를 다운로드하여 Guzzle6 버전을 사용하십시오.>=7.2.5인 경우 cos-sdk-v5-7.phar을 다운로드하여 Guzzle7 버전을 사용하십시오.require '/path/to/cos-sdk-v5-x.phar';
cos-sdk-v5.tar.gz 압축 파일을 다운로드합니다.>= 5.6 및 <7.2.5인 경우 cos-sdk-v5-6.tar.gz를 다운로드하여 Guzzle6 버전을 사용하십시오.>=7.2.5인 경우 cos-sdk-v5-7.tar.gz를 다운로드하여 Guzzle7 버전을 사용하십시오.autoload.php 스크립트를 통해 SDK를 로딩합니다.require '/path/to/sdk/vendor/autoload.php';
Source code 압축 패키지는 Github 기본 패키징 코드 패키지이며, vendor 디렉터리가 포함되어 있지 않습니다. Source 패키지 대신 release 패키지(cos-sdk-v5-x.tar.gz 패키지)를 다운로드하고 전체 리포지토리를 직접 clone 하지 마십시오. 그렇지 않으면 index.php 및 vendor 패키지가 누락됩니다.// SECRETID와 SECRETKEY는 CAM 콘솔에 로그인하여 조회 및 관리합니다.$secretId = "SECRETID"; //"Tencent Cloud API 키 SecretId";$secretKey = "SECRETKEY"; //"Tencent Cloud API 키 SecretKey";$region = "COS_REGION"; //기본 버킷 리전 설정$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', //프로토콜 헤더, 기본값: http'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));
'schema' => 'http'를 입력해야 합니다. https를 입력하면 certificate problem이 발생합니다. 인증서를 설정하려면 PHP SDK FAQ를 참고하십시오.$tmpSecretId = "SECRETID"; //"임시 키 SecretId";$tmpSecretKey = "SECRETKEY"; //"임시 키 SecretKey";$tmpToken = "COS_TOKEN"; //"임시 키 token";$region = "COS_REGION"; //기본 버킷 리전 설정$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', //프로토콜 헤더, 기본값: http'credentials'=> array('secretId' => $tmpSecretId,'secretKey' => $tmpSecretKey,'token' => $tmpToken)));
try {$bucket = "examplebucket-1250000000"; //버킷 이름. 형식: BucketName-APPID$result = $cosClient->createBucket(array('Bucket' => $bucket));//요청 완료print_r($result);} catch (\\Exception $e) {//요청 실패echo($e);}
try {//요청 완료$result = $cosClient->listBuckets();print_r($result);} catch (\\Exception $e) {//요청 실패echo($e);}
# 파일 업로드## putObject(업로드 인터페이스, 최대 5G 파일까지 업로드 가능)### 메모리에 있는 문자열 업로드try {$bucket = "examplebucket-1250000000"; //버킷 이름 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$result = $cosClient->putObject(array('Bucket' => $bucket,'Key' => $key,'Body' => 'Hello World!'));print_r($result);} catch (\\Exception $e) {echo "$e\\n";}### 파일 스트림 업로드try {$bucket = "examplebucket-1250000000"; //버킷 이름 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$srcPath = "path/to/localFile";//로컬 파일의 절대 경로$file = fopen($srcPath, "rb");if ($file) {$result = $cosClient->putObject(array('Bucket' => $bucket,'Key' => $key,'Body' => $file));print_r($result);}} catch (\\Exception $e) {echo "$e\\n";}## Upload(고급 업로드 인터페이스, 기본적으로 멀티파트 업로드를 사용하며 최대 50TB까지 업로드 지원)### 메모리에 있는 문자열 업로드try {$bucket = "examplebucket-1250000000"; //버킷 이름 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$result = $cosClient->Upload($bucket = $bucket,$key = $key,$body = 'Hello World!');print_r($result);} catch (\\Exception $e) {echo "$e\\n";}### 파일 스트림 업로드try {$bucket = "examplebucket-1250000000"; //버킷 이름 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$srcPath = "path/to/localFile";//로컬 파일의 절대 경로$file = fopen($srcPath, 'rb');if ($file) {$result = $cosClient->Upload($bucket = $bucket,$key = $key,$body = $file);}print_r($result);} catch (\\Exception $e) {echo "$e\\n";}
try {$bucket = "examplebucket-1250000000"; //버킷 이름 형식: BucketName-APPID$result = $cosClient->listObjects(array('Bucket' => $bucket));// 요청 완료if (isset($result['Contents'])) {foreach ($result['Contents'] as $rt) {print_r($rt);}}} catch (\\Exception $e) {// 요청 실패echo($e);}
listObjects 인터페이스 1회 호출당 쿼리 가능한 객체 수는 1000개입니다. 모든 객체를 조회할 경우 순환 호출이 필요합니다.try {$bucket = "examplebucket-1250000000"; //버킷 이름 형식: BucketName-APPID$prefix = ''; //객체의 접두사 나열$marker = ''; //이전에 나열한 객체의 중단 지점while (true) {$result = $cosClient->listObjects(array('Bucket' => $bucket,'Marker' => $marker,'MaxKeys' => 1000 //조회 시 출력할 최대 수량 설정, 최대값: 1000));if (isset($result['Contents'])) {foreach ($result['Contents'] as $rt) {// key 출력echo($rt['Key'] . "\\n");}}$marker = $result['NextMarker']; //새로운 중단 지점 설정if (!$result['IsTruncated']) {break; //조회 완료 여부 판단}}} catch (\\Exception $e) {echo($e);}
# 파일 다운로드## getObject(파일 다운로드)### 메모리에 다운로드try {$bucket = "examplebucket-1250000000"; //버킷, 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$result = $cosClient->getObject(array('Bucket' => $bucket,'Key' => $key));// 요청 완료echo($result['Body']);} catch (\\Exception $e) {// 요청 실패echo "$e\\n";}### 로컬에 다운로드try {$bucket = "examplebucket-1250000000"; //버킷, 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$localPath = @"path/to/localFile";//지정된 로컬 경로에 다운로드$result = $cosClient->getObject(array('Bucket' => $bucket,'Key' => $key,'SaveAs' => $localPath));} catch (\\Exception $e) {// 요청 실패echo "$e\\n";}### 다운로드 범위 지정/** Range 필드 형식: 'bytes=a-b'*/try {$bucket = "examplebucket-1250000000"; //버킷, 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$localPath = @"path/to/localFile";//지정된 로컬 경로에 다운로드$result = $cosClient->getObject(array('Bucket' => $bucket,'Key' => $key,'Range' => 'bytes=0-10','SaveAs' => $localPath));} catch (\\Exception $e) {// 요청 실패echo "$e\\n";}## getObjectUrl(파일 UrL 획득)try {$bucket = "examplebucket-1250000000"; //버킷, 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$signedUrl = $cosClient->getObjectUrl($bucket, $key, '+10 minutes');// 요청 완료echo $signedUrl;} catch (\\Exception $e) {// 요청 실패print_r($e);}
# object 삭제## deleteObjecttry {$bucket = "examplebucket-1250000000"; //버킷, 형식: BucketName-APPID$key = "exampleobject"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$result = $cosClient->deleteObject(array('Bucket' => $bucket,'Key' => $key,'VersionId' => 'string'));// 요청 완료print_r($result);} catch (\\Exception $e) {// 요청 실패echo($e);}# 여러 object 삭제## deleteObjectstry {$bucket = "examplebucket-1250000000"; //버킷, 형식: BucketName-APPID$key1 = "exampleobject1"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$key2 = "exampleobject2"; //여기서 key는 객체 키로, 버킷 내 객체의 고유 식별자임$result = $cosClient->deleteObjects(array('Bucket' => $bucket,'Objects' => array(array('Key' => $key1,),array('Key' => $key2,),//...),));// 요청 완료print_r($result);} catch (\\Exception $e) {// 요청 실패echo($e);}
피드백