Hướng dẫn từng bước tạo Authentication Token và sử dụng Temporary URL để upload file lên vStorage thông qua API.
Bước 1: Truy cập trang quản lý Service Account tại địa chỉ https://iam.console.vngcloud.vn/service-accounts để tạo một Service Account mới. Mục tiêu là lấy cặp Client ID và Secret ID dùng cho project vStorage.
Tại bước cấu hình quyền (permission), chọn policy vStorageAPIFullAccess:
Sau khi tạo xong, lưu lại giá trị Secret ID ngay tại bước này vì hệ thống chỉ hiển thị một lần:
Ví dụ về cặp thông tin thu được:
ec2d4f62-6580-406e-95e3-b17xxxxxxxeac20c8b-df1c-480e-bc01-38fxxxxxxxBước 2: Mã hóa cặp ClientID:SecretID sang định dạng Base64. Có hai cách thực hiện:
Cách 1 — Dùng công cụ web: Truy cập https://www.convertstring.com/vi/EncodeDecode/Base64Encode, nhập chuỗi theo định dạng ClientID:SecretID và lấy kết quả mã hóa.
Cách 2 — Dùng lệnh trên Linux server:
echo -n ClientID:SecretID | base64 -w 0
Bước 3: Dùng giá trị Base64 vừa có để gọi API lấy Authen Token bằng lệnh curl sau:
curl --location 'https://iamapis.vngcloud.vn/accounts-api/v1/auth/token' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Base64(ClientID:SecretID)>' \
--data '{
"grantType": "client_credentials"
}'
Thay <Base64(ClientID:SecretID)> bằng chuỗi mã hóa thu được ở Bước 2:
Kết quả trả về sẽ chứa Authen Token:
Nếu dùng Postman, có thể chọn Import → Paste cURL để nhập lệnh curl trên vào trực tiếp:
Bước 4: Gọi API để lấy Temp URL upload. Thay các tham số {project_id}, {bucket_name}, và {object} (tên file đích) cho phù hợp với tài nguyên của bạn. Trường timeExpire xác định thời gian hiệu lực của URL tính bằng giây:
curl --request POST \
--url 'https://han02-api.vstorage.vngcloud.vn/api/v1/ceph/projects/{project_id}/buckets/{bucket_name}/objects/{object}/upload_tempurls' \
--header 'Authorization: Bearer <Token>' \
--header 'accept: */*' \
--header 'content-type: application/json' \
--data '{"timeExpire": 3600}'
Ví dụ Temp URL nhận được từ API:
https://rover123.han02.vstorage.vngcloud.vn/kaisa?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20251218T031455Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=YLTQLAA3OTE3YOLTW4YM%2F20251218%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=725bbee815515f25d78a08ff4dc7d7822cdb3faa5d2b0800d6adb8ee8c307db1
Bước 5: Dùng Temp URL vừa lấy để upload file. Phương thức là PUT. Có thể dùng curl hoặc Postman.
Dùng curl:
curl --location --request PUT \
'https://rover123.han02.vstorage.vngcloud.vn/kaisa?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20251218T031455Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=YLTQLAA3OTE3YOLTW4YM%2F20251218%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=725bbee815515f25d78a08ff4dc7d7822cdb3faa5d2b0800d6adb8ee8c307db1' \
--header 'Content-Type: image/jpeg' \
--data-binary 'kaisa.jpg'
Dùng Postman — cấu hình method PUT, dán Temp URL vào ô địa chỉ, đính kèm file trong phần body:
Khi nhấn Send, phản hồi trả về HTTP 200 nghĩa là upload thành công. File sẽ xuất hiện trên portal vStorage:
timeExpire trong Bước 4 có thể điều chỉnh tùy nhu cầu. Nếu cần upload file lớn hoặc kết nối chậm, hãy tăng thời hạn để tránh URL hết hạn giữa chừng.