Media API#

API quản lý media files: upload, download, xóa, khôi phục.

Base URL: https://app.socialking.vn/api/v1


1. Upload Media#

POST /media/upload #

Auth: Bearer Token (JWT)

Rate Limit: 10 req/sec

Request: multipart/form-data

FieldTypeRequiredValidation
filesFile[]YesTối đa 100 files
skFolderIdUUIDNoNullable, folder đích
filenamestringNoTên file tùy chỉnh

Response (200):

{
  "success": true,
  "message": "Upload thành công 5/5 ảnh",
  "data": {
    "successful": [
      {
        "id": "uuid-string",
        "filename": "image.png",
        "url": "https://cdn.socialking.vn/media/image.png",
        "size": 245760
      }
    ],
    "failed": [],
    "statistics": {
      "total": 5,
      "successCount": 5,
      "failCount": 0,
      "totalDuration": "2.5s",
      "averageDuration": "0.5s",
      "throughput": "2 files/s"
    }
  }
}

2. Download nhiều Media#

POST /media/download-multiple #

Auth: Bearer Token (JWT)

Request Body:

{
  "ids": ["uuid-1", "uuid-2"],
  "zipFilename": "my-images"
}
FieldTypeRequiredValidation
idsUUID[]Yes1-100 IDs
zipFilenamestringNoTên file ZIP

Response: File ZIP download


3. Đổi tên Media#

PATCH /media/rename/:id #

Auth: Bearer Token (JWT)

Request Body:

{
  "filename": "new-name.png"
}
FieldTypeRequiredValidation
filenamestringYes1-255 ký tự

4. Xóa Media#

DELETE /media/delete/:id #

Auth: Bearer Token (JWT)


5. Xóa nhiều Media#

POST /media/delete-bulk #

Auth: Bearer Token (JWT)

Request Body:

{
  "ids": ["uuid-1", "uuid-2"]
}
FieldTypeRequiredValidation
idsUUID[]Yes1-100 IDs

6. Duplicate Media#

POST /media/duplicate #

Auth: Bearer Token (JWT)

Request Body:

{
  "mediaIds": ["uuid-1"],
  "targetFolderId": null,
  "count": 1,
  "nameSuffix": "-copy"
}
FieldTypeRequiredValidation
mediaIdsUUID[]YesTối thiểu 1 ID
targetFolderIdUUIDNoFolder đích
countnumberNo1-10 bản sao, default 1
nameSuffixstringNoHậu tố tên file

7. Khôi phục Media#

PATCH /media/restore/:id #

Auth: Bearer Token (JWT)


8. Khôi phục nhiều Media#

POST /media/restore-bulk #

Auth: Bearer Token (JWT)

Request Body:

{
  "ids": ["uuid-1", "uuid-2"]
}