HTTP API
Việc tải tệp lên cho cả trường tệp đính kèm và bảng tệp đều hỗ trợ xử lý thông qua HTTP API. Tùy theo công cụ lưu trữ được sử dụng bởi tệp đính kèm hoặc bảng tệp mà cách gọi sẽ khác nhau.
Tải lên phía máy chủ
Đối với các công cụ lưu trữ mã nguồn mở được tích hợp trong dự án như S3, OSS, COS, HTTP API sử dụng cùng cách gọi với chức năng tải lên trên giao diện người dùng; tất cả tệp đều được tải lên thông qua máy chủ. Khi gọi API, cần truyền JWT dựa trên thông tin đăng nhập của người dùng qua tiêu đề yêu cầu Authorization, nếu không yêu cầu sẽ bị từ chối truy cập.
Trường tệp đính kèm
Gửi yêu cầu đến tài nguyên bảng tệp đính kèm (attachments), thực hiện thao tác create bằng phương thức POST và tải nội dung nhị phân qua trường file. Sau khi gọi, tệp sẽ được tải lên công cụ lưu trữ mặc định.
Nếu cần tải tệp lên một công cụ lưu trữ khác, có thể chỉ định công cụ lưu trữ đã được cấu hình cho trường của bảng dữ liệu tương ứng thông qua tham số attachmentField (nếu chưa được cấu hình, tệp sẽ được tải lên công cụ lưu trữ mặc định).
Bảng tệp
Khi tải lên bảng tệp, bản ghi tệp sẽ được tự động tạo. Gửi yêu cầu đến tài nguyên bảng tệp, thực hiện thao tác create bằng phương thức POST và tải nội dung nhị phân qua trường file.
Khi tải lên bảng tệp, không cần chỉ định công cụ lưu trữ; tệp sẽ được tải lên công cụ lưu trữ đã cấu hình cho bảng đó.
Tải lên từ phía máy khách
Đối với các công cụ lưu trữ tương thích với S3 được cung cấp bởi plugin thương mại S3-Pro, việc tải lên qua HTTP API cần được thực hiện qua một số bước gọi.
Trường tệp đính kèm
-
Lấy thông tin công cụ lưu trữ
Gửi yêu cầu đến bảng lưu trữ (
storages), thực hiện thao tácgetBasicInfođồng thời truyền mã định danh không gian lưu trữ (storage name) để lấy thông tin cấu hình của công cụ lưu trữ.Ví dụ về thông tin cấu hình công cụ lưu trữ được trả về:
-
Lấy thông tin chữ ký trước của nhà cung cấp dịch vụ
Gửi yêu cầu đến tài nguyên
fileStorageS3, thực hiện thao táccreatePresignedUrlbằng phương thức POST, đồng thời truyền thông tin liên quan đến tệp trong body để lấy thông tin tải lên có chữ ký trước.Giải thích:
- name: Tên tệp
- size: Kích thước tệp (tính bằng bytes)
- type: Loại MIME của tệp, có thể tham khảo: Các loại MIME phổ biến
- storageId: ID của công cụ lưu trữ (trường
idđược trả về trong bước đầu tiên) - storageType: Loại công cụ lưu trữ (trường
typeđược trả về trong bước đầu tiên)
Dữ liệu yêu cầu mẫu:
Cấu trúc dữ liệu của thông tin chữ ký trước nhận được như sau:
-
Tải tệp lên
Sử dụng
putUrlđược trả về để thực hiện yêu cầuPUTvà tải tệp lên trong body.Giải thích:
- putUrl: Trường
putUrlđược trả về ở bước trước - file_path: Đường dẫn đến tệp cục bộ cần tải lên
Dữ liệu yêu cầu mẫu:
- putUrl: Trường
-
Tạo bản ghi tệp
Sau khi tải lên thành công, gửi yêu cầu đến tài nguyên bảng tệp đính kèm (
attachments), thực hiện thao táccreatebằng phương thức POST để tạo bản ghi tệp.Mô tả dữ liệu phụ thuộc trong data-raw:
- title: Trường
fileInfo.titleđược trả về ở bước trước - filename: Trường
fileInfo.keyđược trả về ở bước trước - extname: Trường
fileInfo.extnameđược trả về ở bước trước - path: Mặc định để trống
- size: Trường
fileInfo.sizeđược trả về ở bước trước - url: Mặc định để trống
- mimetype: Trường
fileInfo.mimetypeđược trả về ở bước trước - meta: Trường
fileInfo.metađược trả về ở bước trước - storageId: Trường
idđược trả về ở bước đầu tiên
Dữ liệu yêu cầu mẫu:
- title: Trường
Bảng tệp
Ba bước đầu tiên giống với quy trình tải lên trường tệp đính kèm, nhưng ở bước thứ tư cần tạo bản ghi tệp. Gửi yêu cầu đến tài nguyên bảng tệp, thực hiện thao tác create bằng phương thức POST và tải thông tin tệp lên qua body.
Mô tả dữ liệu phụ thuộc trong data-raw:
- title: Trường
fileInfo.titleđược trả về ở bước trước- filename: Trường
fileInfo.keyđược trả về ở bước trước- extname: Trường
fileInfo.extnameđược trả về ở bước trước- path: Mặc định để trống
- size: Trường
fileInfo.sizeđược trả về ở bước trước- url: Mặc định để trống
- mimetype: Trường
fileInfo.mimetypeđược trả về ở bước trước- meta: Trường
fileInfo.metađược trả về ở bước trước- storageId: Trường
idđược trả về ở bước đầu tiênDữ liệu yêu cầu mẫu:

