2.3.8. PHP를 사용하여 Ceph Object Gateway에 액세스
S3 액세스에 PHP 스크립트를 사용할 수 있습니다. 이 절차에서는 버킷 또는 오브젝트 삭제와 같은 다양한 작업을 수행하는 몇 가지 PHP 스크립트 예를 제공합니다.
아래 예제는 php v5.4.16 및 aws-sdk v2.8.24 에 대해 테스트됩니다. php >= 5.5 이상이 필요하므로 최신 버전의 aws-sdk 를 사용하지 마십시오.php 는 5.5 RHEL 7 의 기본 리포지토리에서 사용할 수 없습니다. php 5.5 를 사용하려면 epel 및 기타 타사 리포지토리를 활성화해야 합니다. 또한 php 5.5 및 최신 버전의 aws-sdk 구성 옵션은 다릅니다.
사전 요구 사항
- 개발 워크스테이션에 대한 루트 수준 액세스.
- 인터넷 액세스.
절차
php패키지를 설치합니다.yum install php
[root@dev ~]# yum install phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
PHP용
aws-sdk의 zip 아카이브를 다운로드하여 압축을 풉니다. 프로젝트 디렉터리를 생성합니다.
mkdir php_s3 cd php_s3
[user@dev ~]$ mkdir php_s3 [user@dev ~]$ cd php_s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 추출된
aws디렉터리를 프로젝트 디렉터리에 복사합니다. 예를 들어 다음과 같습니다.cp -r ~/Downloads/aws/ ~/php_s3/
[user@php_s3]$ cp -r ~/Downloads/aws/ ~/php_s3/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 연결 파일을 생성합니다.
vim conn.php
[user@php_s3]$ vim conn.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow conn.php파일에 다음 내용을 붙여 넣습니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow FQDN_OF_GATEWAY_NODE를 게이트웨이 노드의 FQDN으로 교체합니다.MY_ACCESS_KEY및MY_SECRET_KEY를 Red Hat Ceph Storage 오브젝트 게이트웨이 구성 및 관리 가이드에서 언급한 대로S3액세스용radosgw사용자를 생성할 때 생성된access_key및secret_key로 바꿉니다.PATH_TO_AWS를php프로젝트 디렉터리에 복사한 추출된aws디렉터리의 절대 경로로 교체합니다.파일을 저장하고 편집기를 종료합니다.
파일을 실행합니다.
php -f conn.php | echo $?
[user@php_s3]$ php -f conn.php | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일에 값을 올바르게 제공한 경우 명령의 출력은
0이 됩니다.버킷을 만들기 위한 새 파일을 만듭니다.
vim create_bucket.php
[user@php_s3]$ vim create_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 새 파일에 붙여넣습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행합니다.
php -f create_bucket.php
[user@php_s3]$ php -f create_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 소유 버킷을 나열할 새 파일을 만듭니다.
vim list_owned_buckets.php
[user@php_s3]$ vim list_owned_buckets.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행합니다.
php -f list_owned_buckets.php
[user@php_s3]$ php -f list_owned_buckets.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음과 유사해야 합니다.
my-new-bucket3 2022-04-21 10:33:19 UTC
my-new-bucket3 2022-04-21 10:33:19 UTCCopy to Clipboard Copied! Toggle word wrap Toggle overflow hello.txt라는 소스 파일을 먼저 생성하여 오브젝트를 생성합니다.echo "Hello World!" > hello.txt
[user@php_s3]$ echo "Hello World!" > hello.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 php 파일을 만듭니다.
vim create_object.php
[user@php_s3]$ vim create_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행합니다.
php -f create_object.php
[user@php_s3]$ php -f create_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면
hello.txt개체가my-new-bucket3버킷에 생성됩니다.버킷의 콘텐츠를 나열할 새 파일을 만듭니다.
vim list_bucket_content.php
[user@php_s3]$ vim list_bucket_content.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행합니다.
php -f list_bucket_content.php
[user@php_s3]$ php -f list_bucket_content.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음과 유사합니다.
hello.txt 12 Fri, 22 Apr 2022 15:54:52 GMT
hello.txt 12 Fri, 22 Apr 2022 15:54:52 GMTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 빈 버킷을 삭제하기 위해 새 파일을 생성합니다.
vim del_empty_bucket.php
[user@php_s3]$ vim del_empty_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행합니다.
php -f del_empty_bucket.php | echo $?
[user@php_s3]$ php -f del_empty_bucket.php | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷이 성공적으로 삭제되면 명령은
0을 출력으로 반환합니다.참고create_bucket.php파일을 편집하여 빈 버킷(예:my-new-bucket4,my-new-bucket5)을 생성합니다. 그런 다음 빈 버킷을 삭제하기 전에 위에서 언급한del_empty_bucket.php파일을 편집합니다.중요비어 있지 않은 버킷 삭제는 현재 PHP 2 및
aws-sdk버전에서 지원되지 않습니다.오브젝트를 삭제하기 위한 새 파일을 생성합니다.
vim delete_object.php
[user@php_s3]$ vim delete_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행합니다.
php -f delete_object.php
[user@php_s3]$ php -f delete_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면
hello.txt오브젝트가 삭제됩니다.