iwinv에서 제공하는 서비스인 오브젝트 스토리지는 인터넷을 통해 대용량 데이터를 제한없이 저장하거나 안전하게 저장할 수 있는 객체형 스토리지 서비스로,
REST API Secure Token 인증을 통한 AWS S3와 높은 호환성을 가진 서비스입니다.
본 메뉴얼은 AWS S3에서 제공하는 PHP SDK를 이용하여 iwinv Object Storage를 사용하는 방법을 설명합니다.
## 2021.07.07 추가 ## 해당 메뉴얼이 자동으로 누락되는 에러가 발생하고있습니다. 해당 메뉴얼의 코드나 , 내용이 누락된경우 아래 링크를 참고해주시면 감사하겠습니다.
iwinv Object Storage – PHP SDK - https://idchowto.com/?p=54679
참고문서
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide
https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/php/example_code/s3
PHP SDK 사용하기
테스트 OS : Ubuntu 18.04 LTS
[인증키 확인]
Endpoint -> 오브젝트 스토리지 -> 스토리지 관리 -> 인증키 관리 -> API {IDC} Endpoint
## Endpoint 입력시에는 http://kr.object.iwinv.kr 혹은 https://kr.object.iwinv.kr 과 같은 형식으로 입력해주어야 코드가 정상 실행됩니다.
Access_Key : console.iwinv.kr -> 오브젝트 스토리지 -> 스토리지 관리 -> 인증키 관리 -> Access Key ID
Secret_Key : console.iwinv.kr -> 오브젝트 스토리지 -> 스토리지 관리 -> 인증키 관리 -> Secret Key ID
composer 설치
AWS PHP SDK 설치하기
composer.phar require aws/aws-sdk-php
|
# 예제코드
버킷 생성
PHP 7.X
require 'vendor/autoload.php';
use Aws\S3\S3Client; use Aws\Exception\AwsException;
function createBucket($s3Client, $bucketName) { try { $result = $s3Client->createBucket([ 'Bucket' => $bucketName, ]); return 'The bucket\'s location is: ' . $result['Location'] . '. ' . 'The bucket\'s effective URI is: ' . $result['@metadata']['effectiveUri']; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } }
function createTheBucket() { $s3Client = new S3Client([ 'region' => 'default', 'version' => 'latest', 'credentials' => [ 'key' => 'Access_Key', 'secret' => 'Secret_Key', ], 'endpoint' => 'Endpoint' ]);
echo createBucket($s3Client, 'Bucket_Name'); }
createTheBucket();
?>
|
PHP 5.X
use Aws\S3\S3Client; use Aws\Exception\AwsException;
function createBucket($s3Client, $bucketName) { try { $result = $s3Client->createBucket([ 'Bucket' => $bucketName, ]); return 'The bucket\'s location is: ' . $result['Location'] . '. ' . 'The bucket\'s effective URI is: ' . $result['@metadata']['effectiveUri']; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } }
function createTheBucket() { $s3Client = Aws\S3\S3Client::factory(array(
'key' => Access_Key,
'secret' => Secret_Key,
'endpoint' => 'Endpoint',));
echo createBucket($s3Client, 'Bucket_Name'); }
createTheBucket();
?>
|
버킷 삭제
PHP 7.X
require 'vendor/autoload.php';
use Aws\S3\S3Client; use Aws\Exception\AwsException;
$BUCKET_NAME = 'Bucket_Name';
$s3Client = new S3Client([ 'region' => 'default', 'version' => 'latest', 'credentials' => [ 'key' => 'Access_Key', 'secret' => 'Secret_Key', ], 'endpoint' => 'Endpoint' ]);
try { $objects = $s3Client->getIterator('ListObjects', ([ 'Bucket' => $BUCKET_NAME ])); echo "Keys retrieved!\n"; foreach ($objects as $object) { echo $object['Key'] . "\n"; $result = $s3Client->deleteObject([ 'Bucket' => $BUCKET_NAME, 'Key' => $object['Key'], ]); } $result = $s3Client->deleteBucket([ 'Bucket' => $BUCKET_NAME, ]); } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }
?>
|
PHP 5.X
require 'vendor/autoload.php';
use Aws\S3\S3Client; use Aws\Exception\AwsException;
$BUCKET_NAME = 'Bucket_Name';
$s3Client = Aws\S3\S3Client::factory(array(
'key' => Access_Key,
'secret' => Secret_Key,
'endpoint' => 'Endpoint',));
try { $objects = $s3Client->getIterator('ListObjects', ([ 'Bucket' => $BUCKET_NAME ])); echo "Keys retrieved!\n"; foreach ($objects as $object) { echo $object['Key'] . "\n"; $result = $s3Client->deleteObject([ 'Bucket' => $BUCKET_NAME, 'Key' => $object['Key'], ]); } $result = $s3Client->deleteBucket([ 'Bucket' => $BUCKET_NAME, ]); } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }
?>
|
버킷 리스트 확인
PHP 7.X
require 'vendor/autoload.php';
use Aws\S3\S3Client; use Aws\Exception\AwsException;
$s3Client = new S3Client([ 'region' => 'default', 'version' => 'latest', 'credentials' => [ 'key' => 'Access_Key', 'secret' => 'Secret_Key', ], 'endpoint' => 'Endpoint' ]);
$buckets = $s3Client->listBuckets(); foreach ($buckets['Buckets'] as $bucket) { echo $bucket['Name'] . "\n";
echo " ";
}
?>
|
PHP 5.X
require 'vendor/autoload.php';
use Aws\S3\S3Client; use Aws\Exception\AwsException;
$s3Client = Aws\S3\S3Client::factory(array(
'key' => Access_key,
'secret' => Secret_Key,
'endpoint' => 'EndPoint',));
$buckets = $s3Client->listBuckets(); foreach ($buckets['Buckets'] as $bucket) { echo $bucket['Name'] . "\n";
echo " ";
}
?>
|