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-r1.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ả:

$ php s3.php

array(1) {
  [0]=>
  array(5) {
    ["Key"]=>
    string(10) "vndata.png"
    ["LastModified"]=>
    object(Aws\Api\DateTimeResult)#124 (3) {
      ["date"]=>
      string(26) "2023-04-15 05:09:50.980000"
      ["timezone_type"]=>
      int(2)
      ["timezone"]=>
      string(1) "Z"
    }
    ["ETag"]=>
    string(34) ""18ea78b453c1afc6e36a21b5f952a28e""
    ["Size"]=>
    int(4647)
    ["StorageClass"]=>
    string(8) "STANDARD"
  }
}

Ví dụ về Upload File

<?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>";

$filename   = "<file-name-trên-S3>"; // Ví dụ: $filename = "vndata-2.jpg";
$pathToFile = "<vị-trí-file-cần-upload-ở-local>"; // Ví dụ: $pathToFile = "/home/vndata/vndata.jpg";

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

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

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

$contents = $s3_client->putObject(array(
    'Bucket'     => $bucket_name,
    'Key'        => $filename,
    'SourceFile' => $pathToFile,
));

var_dump($contents['ObjectURL']);

Kết quả:

$ php s3.php

string(56) "https://vndata-example.s3-hcm-r1.s3cloud.vn/vndata-2.jpg"

Ví dụ về Download File

<?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>";

$filename   = "<file-name-trên-S3>"; // Ví dụ: $filename = "vndata-2.jpg";
$pathToFile = "<vị-trí-file-cần-download-ở-local>"; // Ví dụ: $pathToFile = "/home/vndata/vndata.jpg";

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

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

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

$contents = $s3_client->getObject(array(
    'Bucket' => $bucket_name,
    'Key'    => $filename,
    'SaveAs' => $pathToFile,
));

system("ls ".$pathToFile);

Kết quả:

$ php s3.php

/home/vndata/vndata.jpg