Hướng dẫn cấu hình với AWS SDK

Cấu hình aws-sdk-php

Tham khảo mục Xem các thông tin S3 ACCESS CREDENTIALS để lấy thông tin Access Key IDSecret Key ID.

Ví dụ này sử dụng thư viện aws-sdk-php phiên bản 3 và PHP phiên bản 8.1. Quý khách có thể sử dụng thông tin Access Key IDSecret Key ID từ dịch vụ VNDATA Cloud Object Storage của quý khách để khởi tạo dịch vụ S3 client:

<?php
require 'vendor/autoload.php';

$bucket_name        = "<bucket-name>"; // Ví dụ: $bucket_name = "vndata-example";
$access_key_id      = "<access-key-id>";
$access_key_secret  = "<secret-key-id>";

$credentials = new Aws\Credentials\Credentials($access_key_id, $access_key_secret);

$options = [
    'region' => 'auto',
    'endpoint' => "https://s3-hcm-r2.s3cloud.vn",
    'version' => 'latest',
    'credentials' => $credentials
];

$s3_client = new Aws\S3\S3Client($options);

$contents = $s3_client->listObjectsV2([
    'Bucket' => $bucket_name
]);

var_dump($contents['Contents']);

Kết quả:

»

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-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
    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-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 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-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 3
»