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 php
Copy 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_s3
Copy 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.php
Copy 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.php
Copy 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.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 소유 버킷을 나열할 새 파일을 만듭니다.
vim list_owned_buckets.php
[user@php_s3]$ vim list_owned_buckets.php
Copy 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.php
Copy 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 UTC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow hello.txt
라는 소스 파일을 먼저 생성하여 오브젝트를 생성합니다.echo "Hello World!" > hello.txt
[user@php_s3]$ echo "Hello World!" > hello.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 php 파일을 만듭니다.
vim create_object.php
[user@php_s3]$ vim create_object.php
Copy 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.php
Copy 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.php
Copy 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.php
Copy 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 GMT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 빈 버킷을 삭제하기 위해 새 파일을 생성합니다.
vim del_empty_bucket.php
[user@php_s3]$ vim del_empty_bucket.php
Copy 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.php
Copy 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.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면
hello.txt
오브젝트가 삭제됩니다.