Dưới đây là hướng dẫn các bước thực hiện cấu hình AWS-SDK-RUBY
Cài đặt
- Tạo folder ruby để thực hiện

- Sau đó cài đặt Package ruby và aws-sdk-ruby, sử dụng lệnh sau:
sudo apt install ruby-rubygemssudo gem install 'aws-sdk-s3'sudo gem install 'rubyzip'
Thiết lập cấu hình CORS
- Tạo file
setbucketcors.rb với đoạn mã sau để thực hiện thiết lập cấu hình CORS cho bucket - Sử dụng phương thức set_bucket_cors()
- Trong đó thiết lập các thông tin khóa truy cập người dùng, Endpoint và Region để kết nối đến hệ thống VNDATA S3 Storage
- Cấu hình CORS bên dưới cho phép các yêu cấu PUT, POST, DELETE từ địa chỉ website chỉ định và yêu cầu GET từ bất kỳ miền nào
require "aws-sdk-s3"
def SetBucketCORS(s3_client, bucket_name)
resp = s3_client.put_bucket_cors({
bucket: bucket_name,
cors_configuration: {
cors_rules: [
{
allowed_headers: ["*"],
allowed_methods: ["PUT", "POST", "DELETE"],
allowed_origins: ["URL-Website"] # Địa chỉ website cần kết nối đến S3 Storage
},
{
allowed_origins: ["*"],
allowed_methods: ["GET"]
},
],
},
})
rescue StandardError => e
puts "Couldn't set CORS rules for #{bucket_name}. Here's why: #{e.message}"
exit 1
end
def run_me
s3_client = Aws::S3::Client.new(
access_key_id: "S3-Access-Key-ID", # Khóa S3 Access Key
secret_access_key: "S3-Secret-Access-Key", # Khóa S3 Secret Key
endpoint: "https://s3-hcm-r2.s3cloud.vn", # Endpoint VNDATA S3 Storage
region: "hcm" # Region VNDATA S3 Storage
)
bucket_name = "cors-bucket" # Tên bucket
SetBucketCORS(s3_client, bucket_name)
puts "Success set CORS configuration for #{bucket_name}."
end
run_me if $PROGRAM_NAME == __FILE__
- Chạy file setbucketcors.rb bằng lệnh
ruby setbucketcors.rb để thực hiện thiết lập cấu hình CORS cho bucket

Xem cấu hinh CORS
- Tạo file
getbucketcors.rb với đoạn mã sau để thực hiện xem thông tin cấu hình CORS của bucket - Sử dụng phương thức get_bucket_cors()
require "aws-sdk-s3"
def GetBucketCORS(s3_client, bucket_name)
resp = s3_client.get_bucket_cors({
bucket: bucket_name
})
resp.cors_rules.each do |n|
result = "#{n}"
puts result
end
rescue StandardError => e
puts "Couldn't get CORS information of #{bucket_name}. Here's why: #{e.message}"
exit 1
end
def run_me
s3_client = Aws::S3::Client.new(
access_key_id: "S3-Access-Key-ID", # Khóa S3 Access Key
secret_access_key: "S3-Secret-Access-Key", # Khóa S3 Secret Key
endpoint: "https://s3-hcm-r2.s3cloud.vn", # Endpoint VNDATA S3 Storage
region: "hcm" # Region VNDATA S3 Storage
)
bucket_name = "cors-bucket" # Tên bucket
GetBucketCORS(s3_client, bucket_name)
end
run_me if $PROGRAM_NAME == __FILE__
- Chạy file getbucketcors.rb bằng lệnh
ruby getbucketcors.rb để xem thông tin cấu hình CORS của bucket

Xóa cấu hình CORS
- Tạo file
deletebucketcors.rb với đoạn mã sau để thực hiện xóa thông tin cấu hình CORS của bucket - Sử dụng phương thức delete_bucket_cors()
require "aws-sdk-s3"
def DeleteBucketCORS(s3_client, bucket_name)
resp = s3_client.delete_bucket_cors({
bucket: bucket_name
})
rescue StandardError => e
puts "Couldn't delete CORS configuration of #{bucket_name}. Here's why: #{e.message}"
exit 1
end
def run_me
s3_client = Aws::S3::Client.new(
access_key_id: "S3-Access-Key-ID",
secret_access_key: "S3-Secret-Access-Key",
endpoint: "https://s3-hcm-r2.s3cloud.vn",
region: "hcm"
)
bucket_name = "cors-bucket"
DeleteBucketCORS(s3_client, bucket_name)
puts "Success delete CORS configuration for #{bucket_name}."
end
run_me if $PROGRAM_NAME == __FILE__
- Chạy file deletebucketcors.rb bằng lệnh
ruby deletebucketcors.rb để xóa thông tin cấu hình CORS của bucket

»