오브젝트스토리지

iwinv Object Storage - Ruby SDK

 

 

해당 메뉴얼은 AWS S3에서 제공하는 Ruby SDK를 이용하여 iwinv Object Storage를 사용하는 방법을 설명합니다.

 

참고문서 

  https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide

 

 

Ruby 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

 

 

 

ruby 설치하기

sudo apt install ruby

 

Ruby SDK 설치하기  

gem install aws-sdk-s3

 

 

# 예제코드  


 

버킷 생성

require 'aws-sdk-s3'

s3 = Aws::S3::Client.new(
access_key_id: 'Access_Key',
secret_access_key: 'Secret_Key',
endpoint: 'Endpoint',
region: 'default'
)
s3.create_bucket({
bucket: "Bucket_Name",
})

 

 

버킷 삭제

require 'aws-sdk-s3'

s3 = Aws::S3::Client.new(
access_key_id: 'Access_Key',
secret_access_key: 'Secret_Key',
endpoint: 'Endpoint',
region: 'default'
)
s3.delete_bucket(bucket: 'Bucket_Name')

 

 

버킷 리스트 확인

require 'aws-sdk-s3'

s3 = Aws::S3::Client.new(
access_key_id: 'Access_Key',
secret_access_key: 'Secret_Key',
endpoint: 'Endpoint',
region: 'default'
)
resp = s3.list_buckets
resp.buckets.each do |b|
puts b.name
end

 

 

오브젝트 업로드

require 'aws-sdk-s3'

s3 = Aws::S3::Resource.new(
access_key_id: 'Access_Key',
secret_access_key: 'Secret_Key',
endpoint: 'Endpoint',
region: 'default'
)
file = 'Path/File_Name' # /tmp/test.txt
bucket = 'Bucket_Name'

name = File.basename(file)

obj = s3.bucket(bucket).object(name)

obj.upload_file(file)

 

 

오브젝트 다운로드

require 'aws-sdk-s3'

s3 = Aws::S3::Client.new(
access_key_id: 'Access_Key',
secret_access_key: 'Secret_Key',
endpoint: 'Endpoint',
region: 'default'
)

obj = s3.bucket('Bucket_Name').object('Object_Name')


obj.get(response_target: 'Path/File_Name') # /tmp/test.txt

 

 

오브젝트 리스트 확인

require 'aws-sdk-s3'

s3 = Aws::S3::Client.new(
access_key_id: 'Access_Key',
secret_access_key: 'Secret_Key',
endpoint: 'Endpoint',
region: 'default'
)
objects = s3.list_objects({bucket: "Bucket_Name"})
objects.contents.each do |obj|
puts "#{obj.key}"
end

 

 

오브젝트 삭제

require 'aws-sdk-s3'

s3 = Aws::S3::Client.new(
access_key_id: 'Access_Key',
secret_access_key: 'Secret_Key',
endpoint: 'Endpoint',
region: 'default'
)
s3.delete_object({
bucket: 'Bucket_Name',
key: 'Object_Name'
})