Thêm S3 Channel
Phù hợp nhất khi nào
Dùng S3 channel khi:
- Bạn muốn kết nối object storage service tương thích S3, như Cloudflare R2, Backblaze B2, MinIO, AWS S3 hoặc provider tương thích khác.
- Bạn thích mô hình cấu hình S3 chuẩn:
Endpoint, Access Key và Secret Key. - Bạn không muốn dùng native Cloudflare R2 binding channel, hoặc storage provider của bạn không phải Cloudflare R2.
Cần chuẩn bị gì trước khi bắt đầu
| Requirement | Purpose |
|---|---|
| S3 Endpoint | S3 API endpoint của object storage service. |
| Bucket name | Bucket dùng để lưu files. |
| Region | Storage region. Với Cloudflare R2 thường là auto. |
| Access Key ID | S3 access key ID. |
| Secret Access Key | S3 secret access key. |
| CDN domain | Custom domain tùy chọn cho file access. |
Ví dụ Cloudflare R2 qua S3 API:
text
Endpoint: https://your-account-id.r2.cloudflarestorage.com
Bucket: your-r2-bucket-name
Region: auto
Access Key ID: copied from the Cloudflare R2 API token
Secret Access Key: copied from the Cloudflare R2 API tokenThêm ở đâu
- Mở System Settings.
- Vào Upload Settings.
- Nhấn Add Channel ở góc trên bên phải.
- Chọn
S3.
Field Reference
| Field | Tác dụng | Required |
|---|---|---|
| Channel name | Tên dễ nhận biết cho S3 channel, ví dụ s3test hoặc R2-S3. | Yes |
| Enable channel | Kiểm soát channel này có tham gia upload selection hay không. | Recommended |
| Endpoint | Full S3 service endpoint, bao gồm https://. | Yes |
| Custom CDN domain | Optional. Khi đặt, generated file links sẽ ưu tiên domain này. | No |
| Bucket name | Bucket name, ví dụ s3test hoặc img-r2. | Yes |
| Bucket region | Region. Với Cloudflare R2 thường là auto. | Yes |
| Access Key ID | S3 access key ID. | Yes |
| Secret Access Key | S3 secret access key. | Yes |
| Path-style access | Compatibility switch. Mặc định off. Một số MinIO, OpenList hoặc self-hosted S3 service có thể cần. | No |
| Quota limit | Kiểm soát S3 channel này có tham gia upload selection theo capacity hay không. | No |
| Capacity limit | Required sau khi bật quota limit, ví dụ 10 GB. | Required khi bật quota limit |
| Threshold | Dừng ghi khi usage đạt percentage này, ví dụ 90%. | Required khi bật quota limit |
| Remark | Ghi chú để tự bảo trì. | No |
Tạo Cloudflare R2 S3 API Keys
- Mở Cloudflare Dashboard.
- Vào
R2 Object Storage. - Tìm
Manage R2 API Tokenshoặc mục quản lý API token.

- Tạo R2 API token có quyền access target bucket.

- Copy
Access Key IDvàSecret Access Keyđược tạo.

- Quay lại trang R2 bucket và xác nhận bucket name.
- Ghi lại S3 API endpoint của account. Thường có dạng:
text
https://your-account-id.r2.cloudflarestorage.comCác bước thiết lập
- Mở Upload Settings.
- Nhấn Add Channel.
- Chọn
S3. - Nhập channel name dễ nhận biết, ví dụ
s3test. - Nhập S3 API endpoint trong
Endpoint. - Nếu dùng custom CDN, nhập trong
Custom CDN domain; nếu không thì để trống. - Nhập bucket name.
- Nhập region. Với ví dụ Cloudflare R2, dùng
auto. - Nhập Access Key ID và Secret Access Key.
- Giữ path-style access ở off trừ khi provider yêu cầu rõ.
- Nếu muốn capacity control, bật quota limit rồi nhập capacity limit và threshold.
- Nhấn Save.

Cách kiểm tra
| Check | Cách kiểm tra |
|---|---|
| Channel card xuất hiện | Sau khi save, trang Upload Settings cần hiển thị S3 channel card. |
| Channel enabled | Switch ở góc trên bên phải card nên ở trạng thái on. |
| Key fields đã lưu | Detail view cần hiển thị Endpoint, Bucket, Region, path-style access và các field liên quan. |
| Upload hoạt động | Upload test image và xác nhận object xuất hiện trong target bucket. |
| Link mở được | Image link trả về sau upload cần mở bình thường. |
| Capacity display hoạt động | Nếu bật quota limit, card cần hiển thị used capacity và configured limit. |
S3 capacity statistics được tính từ local file records của ImgBed, không query provider bucket theo real time. Sau khi save S3 configuration, system sẽ recalculate quota ledger từ current D1 records.

FAQ
Có nên bật path-style access không?
Thường là không.
Chỉ bật khi S3-compatible provider không hỗ trợ virtual-hosted-style URLs, hoặc provider documentation yêu cầu path-style access rõ ràng. Một số MinIO, self-hosted S3 và OpenList-compatible endpoints có thể cần.
CDN domain dùng để làm gì?
Nếu bạn đặt CDN hoặc custom access domain trước bucket, nhập domain đó ở đây.
Sau khi cấu hình, generated file links sẽ ưu tiên domain này. Nếu không dùng CDN, để trống.
Vì sao upload fail?
Kiểm tra các mục này trước:
- Endpoint là full
https://URL. - Bucket name chính xác.
- Region khớp với yêu cầu của provider.
- Access Key ID và Secret Access Key được copy đầy đủ.
- Key có write permission cho target bucket.
- Provider không yêu cầu path-style access, hoặc đã bật path-style access nếu cần.
Quick Checklist
text
Chuẩn bị S3 Endpoint, Bucket, Region, Access Key và Secret Key
-> Mở Upload Settings
-> Add Channel
-> Chọn S3
-> Nhập Endpoint / Bucket / Region / Access Key / Secret Key
-> Nhập CDN domain nếu cần
-> Giữ path-style access off theo mặc định
-> Bật quota limit nếu cần
-> Save
-> Upload test image và kiểm tra kết quả