Mô tả các bước xác thực bằng Service Account và sử dụng Temp URL để upload object lên vStorage tại region HAN01.
Bước 1: Truy cập trang quản lý Service Account tại https://iam.console.vngcloud.vn/service-accounts để tạo một Service Account mới. Sau khi tạo, hệ thống cấp cho bạn một cặp Client ID và Secret ID gắn với project vStorage.
Ở bước gán quyền, chọn policy vStorageAPIFullAccess:
Lưu lại giá trị Secret ID ngay khi được hiển thị — hệ thống chỉ hiển thị một lần:
ec2d4f62-6580-406e-95e3-b17xxxxxxx — Secret ID: eac20c8b-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 tại https://www.convertstring.com/vi/EncodeDecode/Base64Encode — dán chuỗi ClientID:SecretID vào ô nhập và lấy kết quả.
▸ Cách 2: Chạy lệnh trực tiếp trên máy chủ Linux:
echo -n ClientID:SecretID | base64 -w 0
Bước 3: Dùng chuỗi Base64 vừa tạo để gọi API lấy Authen Token:
curl --location \
--url '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 Base64 thu được ở Bước 2.
Kết quả trả về chứa trường access_token — đây chính là Authen Token cần dùng cho các bước tiếp theo:
Nếu dùng Postman, chọn Import → dán lệnh curl trên vào:
Bước 4: Gọi API để tạo Temp URL cho object cần upload. Thay các placeholder {project_id}, {bucket_name}, {object_name} bằng thông tin thực tế. Tham số timeExpire là thời gian hiệu lực của URL tính bằng giây (ví dụ: 3600 = 1 giờ):
curl --request POST \
--url 'https://han02-api.vstorage.vngcloud.vn/api/v1/ceph/projects/{project_id}/buckets/{bucket_name}/objects/{object_name}/upload_tempurls' \
--header 'Authorization: Bearer <Token>' \
--header 'accept: */*' \
--header 'content-type: application/json' \
--data '{"timeExpire": 3600}'
API trả về một URL có chứa các tham số chữ ký AWS4 dạng:
https://{bucket}.han02.vstorage.vngcloud.vn/{object}?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=...&X-Amz-Expires=3600&X-Amz-Signature=...
Bước 5: Dùng Temp URL để upload file. Phương thức bắt buộc là PUT.
Dùng curl:
curl --location --request PUT '<Temp_URL>' \
--header 'Content-Type: image/jpeg' \
--data-binary '@kaisa.jpg'
Dùng Postman: tạo request PUT, dán Temp URL vào ô URL, thiết lập Body → binary, chọn file cần upload:
Nhấn Send. Khi nhận được HTTP status 200, file đã được upload thành công. Kiểm tra trên portal vStorage để xác nhận object xuất hiện trong bucket:
timeExpire. Nếu cần upload lại hoặc upload file khác, lặp lại Bước 4 để tạo URL mới.