Giới thiệu
Tải lên và quản lý tệp trong lưu trữ đám mây với tối ưu hóa tự động.
Thêm thông tin về giao diện người dùng của mô-đun https://doc.oneentry.cloud/docs/attributes/types/#File
🎯 Mô-đun này làm gì?
Mô-đun FileUploading cho phép bạn tải lên, truy xuất và xóa tệp trong lưu trữ đám mây OneEntry - hình ảnh, PDF, video, tài liệu, bất kỳ loại tệp nào - với tối ưu hóa hình ảnh tự động và phân phối qua CDN.
Hãy coi nó như là trình quản lý lưu trữ đám mây của bạn - bạn chỉ cần tải lên tệp một lần, và OneEntry sẽ lưu trữ, tự động tối ưu hóa hình ảnh và phục vụ chúng nhanh chóng qua CDN.
🚀 Bắt đầu nhanh
Khởi tạo mô-đun từ defineOneEntry:
const { FileUploading } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Tải lên một tệp và đọc liên kết tải xuống được trả về:
// upload() returns an ARRAY of uploaded files (IUploadingReturn[]).
const uploaded = await FileUploading.upload(file, {
entity: "product",
id: 123,
type: "image",
compress: true,
});
const { filename, downloadLink, size } = uploaded[0];
console.log(downloadLink); // use in <img>, <a>, <video>
Sau đó, xóa nó bằng tên tệp (thực thể/id xác định thư mục lưu trữ):
await FileUploading.delete(filename, { entity: "product", id: 123 });
✨ Khái niệm chính
Tải lên tệp là gì?
Tải lên tệp là lưu trữ tệp trong lưu trữ đám mây và nhận lại một liên kết CDN vĩnh viễn:
- Tải lên - gửi một
FilehoặcBlobđến đám mây OneEntry - Lưu trữ - các tệp được lưu trữ, tổ chức theo
entity→id→filename - CDN - phân phối nhanh từ các máy chủ gần người dùng
- Tối ưu hóa - hình ảnh có thể được nén và thay đổi kích thước tự động
- URL -
downloadLinktrong phản hồi là liên kết vĩnh viễn
Các loại tệp được hỗ trợ
Bất kỳ loại tệp nào cũng được chấp nhận. Chỉ có hình ảnh là được tối ưu hóa tự động; mọi thứ khác được lưu trữ nguyên trạng.
| Danh mục | Các loại tệp | Tối ưu hóa tự động |
|---|---|---|
| Hình ảnh | JPG, PNG, GIF, WebP, SVG | Có (thay đổi kích thước, nén) |
| Tài liệu | PDF, DOC, DOCX, XLS, XLSX | Không (lưu trữ nguyên trạng) |
| Video | MP4, MOV, AVI, WebM | Không (lưu trữ nguyên trạng) |
| Tệp nén | ZIP, RAR, TAR, GZ | Không (lưu trữ nguyên trạng) |
| Khác | Bất kỳ loại tệp nào | Không (lưu trữ nguyên trạng) |
📋 Những điều bạn cần biết
Tham số tải lên
upload(file, fileQuery?) nhận tệp cùng với một đối tượng truy vấn tùy chọn:
await FileUploading.upload(file, {
entity: 'product', // Storage folder name (optional, any string)
id: 123, // Entity ID (optional)
type: 'image', // Folder/type hint (optional, any string)
width: 1920, // Max width for images (optional)
height: 1080, // Max height for images (optional)
compress: true, // Compress images (optional)
});
file—FilehoặcBlobđể tải lên (từ một đầu vào hoặc kéo-thả)entity— tên thư mục tự do trong lưu trữ (ví dụ:product,page,user,editor— ví dụ, không phải là enum cố định)id— ID thực thể để liên kết tệptype— chuỗi gợi ý thư mục/loại tự dowidth/height— kích thước tối đa cho hình ảnh (tỷ lệ khung hình được bảo toàn)compress— kích hoạt nén hình ảnh
Phản hồi tải lên
upload() trả về một mảng của IUploadingReturn. Mỗi mục có:
{
filename: "uploads/abc123-photo.jpg", // Filename with relative path
downloadLink: "https://cdn.../photo.jpg", // CDN URL
size: 204800, // File size in bytes
contentType: "image/png", // MIME type
}
downloadLink— sử dụng URL này trong các thẻ<img>,<a>,<video>filename— lưu nó để xóa tệp sau nàysize— kích thước tệp tính bằng byte
Tối ưu hóa hình ảnh
Đối với hình ảnh, bạn có thể truyền width, height, và compress. Tỷ lệ khung hình luôn được bảo toàn — hình ảnh được thay đổi kích thước để phù hợp trong các giới hạn đã cho, không bao giờ bị kéo giãn.
Xóa tệp
Truyền tên tệp trước tiên; thực thể/id/type nằm trong đối tượng truy vấn tùy chọn xác định thư mục lưu trữ:
await FileUploading.delete('abc123-photo.jpg', {
entity: 'product',
id: productId,
});
Truy xuất một tệp
getFile(id, type, entity, filename, template?) trả về một đối tượng Response thô (không phải JSON đã phân tích) — gọi .blob(), .arrayBuffer(), v.v. trên nó khi cần.
Tạo một tệp từ URL
createFileFromUrl(url, filename, mimeType?) lấy một tài nguyên từ xa và trả về một File của trình duyệt, tiện lợi cho việc tải lại một hình ảnh từ xa đã tồn tại.
📊 Bảng tham khảo nhanh - Phương thức
| Phương thức | Chức năng | Khi nào sử dụng |
|---|---|---|
| upload() | Tải lên tệp vào lưu trữ đám mây | Người dùng tải lên hình ảnh, tài liệu |
| getFile() | Lấy tệp (đối tượng Response thô) | Tải xuống một tệp đã lưu |
| delete() | Xóa tệp khỏi lưu trữ | Xóa các tệp cũ |
| createFileFromUrl() | Tạo một File từ một URL từ xa | Nhập một hình ảnh từ xa trước khi tải lên |
Tất cả các phương thức đều công khai — không yêu cầu xác thực người dùng.
❓ Câu hỏi thường gặp (FAQ)
Tôi có thể tải lên các loại tệp nào?
Bất kỳ loại tệp nào. Chỉ có hình ảnh là được tối ưu hóa tự động (thay đổi kích thước/nén); các tệp khác được lưu trữ nguyên trạng.
Kích thước tệp tối đa là bao nhiêu?
Nó phụ thuộc vào giới hạn kế hoạch OneEntry của bạn. Tối ưu hóa hình ảnh trước khi tải lên để giữ kích thước nhỏ.
Các tệp có được lưu trữ vĩnh viễn không?
Có — các tệp sẽ ở lại cho đến khi bạn xóa chúng bằng FileUploading.delete(). Các tệp vẫn ở trong lưu trữ ngay cả khi thực thể liên quan bị xóa, vì vậy hãy dọn dẹp chúng một cách rõ ràng.
Tôi có thể lấy danh sách tất cả các tệp đã tải lên cho một thực thể không?
Không trực tiếp qua SDK này. Theo dõi các giá trị filename mà bạn nhận được từ upload() (ví dụ: lưu chúng trong cơ sở dữ liệu của bạn) để quản lý các tệp sau này.
Tôi có thể thay đổi kích thước hình ảnh đến kích thước chính xác không?
Không — tỷ lệ khung hình luôn được bảo toàn. width/height xác định một hộp giới hạn mà hình ảnh được phù hợp bên trong, ngăn ngừa biến dạng.
🎓 Thực hành tốt nhất
- Xác thực loại tệp và kích thước trước khi gọi
upload(). - Truyền
entity/idđể các tệp được tổ chức theo thực thể trong lưu trữ. - Kích hoạt
compresscho hình ảnh web. - Lưu
filenameđược trả về để bạn có thểdelete()tệp sau này. - Dọn dẹp các tệp không sử dụng một cách rõ ràng — chúng vẫn tồn tại sau khi xóa thực thể.
- Xử lý lỗi tải lên bằng try/catch và kiểm tra hình dạng trả về của
IError.
🔗 Tài liệu liên quan
- Mô-đun Sản phẩm - Tải lên hình ảnh sản phẩm
- Mô-đun FormsData - Các trường tệp được tải lên thông qua mô-đun này khi gửi
- Mô-đun Người dùng - Tải lên ảnh hồ sơ người dùng
- Mô-đun Trang - Tải lên các tệp nội dung trang