Tài liệu API — Tải file lên

Hướng dẫn dùng endpoint tải file lên VCloudShare. File được lưu trữ và trả về link đã mã hoá — không lộ file gốc.

POSThttps://vcloudshare-api.vercel.app/api/v1/filesCần đăng nhập

Tải lên một file bất kỳ (tối đa 50MB) bằng multipart/form-data. Trả về metadata của file kèm link chia sẻ.

Đăng ký tài khoản

API chỉ dành cho tài khoản đã được cấp. Việc đăng ký không mở công khai — bạn cần liên hệ quản trị viên để được tạo tài khoản, sau đó đăng nhập lấy access token.

Xác thực

Gửi kèm access token nhận được sau khi đăng nhập trong header Authorization theo dạng Bearer.

Authorization: Bearer <accessToken>

Trường của request

Body phải là multipart/form-data (KHÔNG phải JSON). Chỉ trường file là bắt buộc.

TrườngKiểuBắt buộcMô tả
filebinaryFile nhị phân cần tải lên (tối đa 50MB).
descriptionstringKhôngMô tả ngắn cho file (tuỳ chọn).
isPublicbooleanKhôngtrue để ai có link cũng tải được; mặc định false (chỉ mình bạn).

Ví dụ

cURL
curl -X POST https://vcloudshare-api.vercel.app/api/v1/files \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@/path/to/photo.png" \
  -F "description=My photo" \
  -F "isPublic=true"
JavaScript (fetch)
const form = new FormData()
form.append('file', fileInput.files[0])
form.append('description', 'My photo')
form.append('isPublic', 'true')

const res = await fetch('https://vcloudshare-api.vercel.app/api/v1/files', {
    method: 'POST',
    headers: { Authorization: `Bearer ${token}` },
    body: form,
})
const json = await res.json()
console.log(json.data.link)

Phản hồi

Trả về 201 kèm metadata của file. Dùng data.link để chia sẻ hoặc tải xuống.

201 Created
{
  "success": true,
  "message": "File uploaded successfully.",
  "data": {
    "id": "a3d306a4-a16a-4be3-8e4e-51aa0d79865f",
    "fileName": "photo.png",
    "mimeType": "image/png",
    "sizeBytes": 12345,
    "description": "My photo",
    "isActive": true,
    "isPublic": true,
    "link": "https://vcloudshare-api.vercel.app/api/v1/files/public/ZlN5VUUi3DJEjigiusoO6YCUez5...",
    "userId": "7e3a7f5b-6d84-467b-8b3b-d9abdc4b8c2b",
    "createdAt": "2026-07-18T14:30:00.000Z",
    "updatedAt": null
  },
  "version": "1.1.0",
  "author": "The Vi",
  "license": "MIT",
  "requestId": "ed302ae9-ce9c-438c-92c7-f829c6d7e707"
}

Mã lỗi

HTTPÝ nghĩa
401TOKEN_MISSINGThiếu hoặc sai access token.
403FORBIDDENTài khoản không đủ quyền tải lên.
422VALIDATION_FAILEDInput sai định dạng (xem data.details).
422FILE_TOO_LARGEFile vượt quá giới hạn 50MB.