2.3.7. Ruby AWS SDK를 사용하여 Ceph Object Gateway에 액세스
S3
액세스를 위해 aws-sdk
gem과 함께 Ruby 프로그래밍 언어를 사용할 수 있습니다. Ruby AWS::SDK
를 사용하여 Ceph Object Gateway 서버에 액세스하는 데 사용되는 노드에서 아래에 언급된 단계를 실행합니다.
사전 요구 사항
- Ceph Object Gateway에 대한 사용자 수준 액세스.
- Ceph Object Gateway에 액세스하는 노드에 대한 루트 수준 액세스입니다.
- 인터넷 액세스.
절차
ruby
패키지를 설치합니다.yum install ruby
[root@dev ~]# yum install ruby
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위의 명령은 ruby를 설치하고
ruby
gemsruby-libs
와 같은 필수 종속 항목을 설치합니다. 임의의 경우 명령은 모든 종속 항목을 설치하지 않는 경우 별도로 설치합니다.aws-sdk
Ruby 패키지를 설치합니다.gem install aws-sdk
[root@dev ~]# gem install aws-sdk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 프로젝트 디렉터리를 생성합니다.
mkdir ruby_aws_sdk cd ruby_aws_sdk
[user@dev ~]$ mkdir ruby_aws_sdk [user@dev ~]$ cd ruby_aws_sdk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 연결 파일을 생성합니다.
vim conn.rb
[user@ruby_aws_sdk]$ vim conn.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을
conn.rb
파일에 붙여넣습니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow FQDN_OF_GATEWAY_NODE
를 Ceph Object Gateway 노드의 FQDN으로 바꿉니다.MY_ACCESS_KEY
및MY_SECRET_KEY
를 Red Hat Ceph Storage 오브젝트 게이트웨이 구성 및 관리 가이드에서 언급한 대로S3
액세스를 위해radosgw
사용자를 생성할 때 생성된access_key
및secret_key
로 바꿉니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능으로 설정합니다.
chmod +x conn.rb
[user@ruby_aws_sdk]$ chmod +x conn.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./conn.rb | echo $?
[user@ruby_aws_sdk]$ ./conn.rb | echo $?
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일에 값을 올바르게 제공한 경우 명령의 출력은
0
이 됩니다.버킷을 만들기 위한 새 파일을 만듭니다.
vim create_bucket.rb
[user@ruby_aws_sdk]$ vim create_bucket.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능으로 설정합니다.
chmod +x create_bucket.rb
[user@ruby_aws_sdk]$ chmod +x create_bucket.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./create_bucket.rb
[user@ruby_aws_sdk]$ ./create_bucket.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령의 출력이
true
이면 버킷my-new-bucket2
가 성공적으로 생성되었습니다.소유 버킷을 나열할 새 파일을 만듭니다.
vim list_owned_buckets.rb
[user@ruby_aws_sdk]$ vim list_owned_buckets.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능으로 설정합니다.
chmod +x list_owned_buckets.rb
[user@ruby_aws_sdk]$ chmod +x list_owned_buckets.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./list_owned_buckets.rb
[user@ruby_aws_sdk]$ ./list_owned_buckets.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음과 같아야 합니다.
my-new-bucket2 2022-04-21 10:33:19 UTC
my-new-bucket2 2022-04-21 10:33:19 UTC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트를 생성하기 위한 새 파일을 생성합니다.
vim create_object.rb
[user@ruby_aws_sdk]$ vim create_object.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능으로 설정합니다.
chmod +x create_object.rb
[user@ruby_aws_sdk]$ chmod +x create_object.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./create_object.rb
[user@ruby_aws_sdk]$ ./create_object.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면
Hello World!!
문자열이 포함된hello.txt
파일이 생성됩니다.버킷의 콘텐츠를 나열할 새 파일을 만듭니다.
vim list_bucket_content.rb
[user@ruby_aws_sdk]$ vim list_bucket_content.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능하게 만듭니다.
chmod +x list_bucket_content.rb
[user@ruby_aws_sdk]$ chmod +x list_bucket_content.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./list_bucket_content.rb
[user@ruby_aws_sdk]$ ./list_bucket_content.rb
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.rb
[user@ruby_aws_sdk]$ vim del_empty_bucket.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능으로 설정합니다.
chmod +x del_empty_bucket.rb
[user@ruby_aws_sdk]$ chmod +x del_empty_bucket.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./del_empty_bucket.rb | echo $?
[user@ruby_aws_sdk]$ ./del_empty_bucket.rb | echo $?
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷이 성공적으로 삭제되면 명령은
0
을 출력으로 반환합니다.참고create_bucket.rb
파일을 편집하여 빈 버킷을 생성합니다(예:my-new-bucket6
,my-new-bucket7
). 그런 다음 빈 버킷을 삭제하기 전에 위의del_empty_bucket.rb
파일을 적절하게 편집합니다.비어 있지 않은 버킷을 삭제하기 위해 새 파일을 생성합니다.
vim del_non_empty_bucket.rb
[user@ruby_aws_sdk]$ vim del_non_empty_bucket.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능으로 설정합니다.
chmod +x del_non_empty_bucket.rb
[user@ruby_aws_sdk]$ chmod +x del_non_empty_bucket.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./del_non_empty_bucket.rb | echo $?
[user@ruby_aws_sdk]$ ./del_non_empty_bucket.rb | echo $?
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷이 성공적으로 삭제되면 명령은
0
을 출력으로 반환합니다.오브젝트를 삭제하기 위한 새 파일을 생성합니다.
vim delete_object.rb
[user@ruby_aws_sdk]$ vim delete_object.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 파일에 붙여넣습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 저장하고 편집기를 종료합니다.
파일을 실행 가능으로 설정합니다.
chmod +x delete_object.rb
[user@ruby_aws_sdk]$ chmod +x delete_object.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 실행합니다.
./delete_object.rb
[user@ruby_aws_sdk]$ ./delete_object.rb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면
hello.txt
오브젝트가 삭제됩니다.