Cấu hình aws-sdk-ruby

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
    1
  • Sau đó cài đặt Package rubyaws-sdk-ruby, sử dụng lệnh sau:
    • sudo apt install ruby-rubygems
    • sudo 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-r1.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
    2

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-r1.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 4

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-r1.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 3