Object storage (S3)
Bucket S3 đặt tại Việt Nam cho file của app: upload, ảnh, bản backup. Dùng được với mọi S3 client hoặc SDK (AWS SDK, boto3, rclone, s3cmd…).
| Thông số | Giá trị |
|---|---|
| Endpoint | https://s3.zocloud.app |
| Region | hiện trên trang bucket (biến S3_REGION) |
| Kiểu địa chỉ | path-style (https://s3.zocloud.app/<bucket>/<key>) |
| Upload đơn tối đa | 100 MB; file lớn hơn dùng multipart upload (SDK tự làm) |
Tạo bucket
- Trên canvas project, bấm Thêm → Object storage (S3).
- Nhập Tên (chữ thường, số,
-), ví dụfiles. Service gọi bucket qua tên này trong biến. - Nhập Giới hạn dung lượng (GB). Ghi vượt giới hạn sẽ bị từ chối; bạn trả tiền theo dung lượng thực dùng.
- Bấm Tạo.
Kết nối từ service
Mục Kết nối hiện các biến tham chiếu; thêm vào Biến môi trường của service rồi deploy lại:
S3_ENDPOINT=${{files.S3_ENDPOINT}}
S3_BUCKET=${{files.S3_BUCKET}}
S3_ACCESS_KEY_ID=${{files.S3_ACCESS_KEY_ID}}
S3_SECRET_ACCESS_KEY=${{files.S3_SECRET_ACCESS_KEY}}
Các biến có sẵn của bucket:
| Biến | Ghi chú |
|---|---|
S3_ENDPOINT, S3_REGION, S3_BUCKET |
|
S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY |
|
S3_FORCE_PATH_STYLE |
luôn true |
AWS_ENDPOINT_URL_S3, AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY |
tên kiểu AWS, để SDK tự đọc |
Mỗi bucket có access key riêng, chỉ truy cập được bucket này. Xem giá trị đầy đủ ở Biến kết nối → Xem thông tin kết nối (dùng cho rclone, script trên máy…).
Ví dụ (Node.js, AWS SDK v3)
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({
endpoint: process.env.S3_ENDPOINT,
region: process.env.S3_REGION,
forcePathStyle: true,
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY_ID,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
},
});
await s3.send(new PutObjectCommand({ Bucket: process.env.S3_BUCKET, Key: "hello.txt", Body: "Xin chào" }));
Ví dụ (Python, boto3)
import os, boto3
s3 = boto3.client(
"s3",
endpoint_url=os.environ["S3_ENDPOINT"],
region_name=os.environ["S3_REGION"],
aws_access_key_id=os.environ["S3_ACCESS_KEY_ID"],
aws_secret_access_key=os.environ["S3_SECRET_ACCESS_KEY"],
config=boto3.session.Config(s3={"addressing_style": "path"}),
)
s3.put_object(Bucket=os.environ["S3_BUCKET"], Key="hello.txt", Body=b"Xin chao")
Dung lượng
Mục Dung lượng hiện phần đã dùng, giới hạn và số file (đo định kỳ, không tức thời). Bấm Đổi giới hạn để đặt giới hạn mới. Tổng dung lượng object storage là một giới hạn của gói.
Xoá bucket
Vùng nguy hiểm → Xoá bucket, gõ tên để xác nhận. Mọi file trong bucket bị xoá, rồi bucket và key bị xoá. Không hoàn tác được.