📁 مستندات API سیستم مدیریت فایل Up4U

مستندات کامل APIهای سرور فایل. تمام درخواست‌ها باید با کوکی (Session) ارسال شوند و پس از لاگین معتبر می‌باشند.

📍 آدرس پایه (Base URL):
https://api.up4u.ir

🔐 1. احراز هویت (Authentication)

First Step
POST /services/auth/login
دریافت نشست (Session) با ارسال نام کاربری و رمز عبور
📦 Body Parameters (JSON):
پارامترنوعتوضیح
userNamestringنام کاربری
passwordstringرمز عبور
curl -X POST https://api.up4u.ir/services/auth/login \
  -H "Content-Type: application/json" \
  -d '{"userName": "master", "password": "secret"}' \
  -c cookies.txt
GET /services/auth/logout
پایان نشست و خروج از سیستم
curl -X GET https://api.up4u.ir/services/auth/logout -b cookies.txt

📄 2. مدیریت فایل‌ها (File Operations)

Core APIs
GET /services/files/list/{path}
دریافت لیست فایل‌ها و پوشه‌های یک مسیر
📌 Path Parameters:
پارامترنوعتوضیح
pathstringمسیر نسبی (خالی = ریشه کاربر)
curl -X GET https://api.up4u.ir/services/files/list/ \
  -b cookies.txt
✅ Response Example:
{
  "path": "",
  "directoryInfo": [
    { "filePath": "docs", "lastModified": 1712345678000 }
  ],
  "fileInfo": [
    { "filePath": "file.txt", "size": 1024, "lastModified": 1712345678000 }
  ]
}
GET /services/files/download/{path}
دانلود فایل
curl -X GET https://api.up4u.ir/services/files/download/docs/file.txt \
  -b cookies.txt \
  -o file.txt
POST /services/files/upload/{path}/{filename}
آپلود فایل
curl -X POST https://api.up4u.ir/services/files/upload/docs/file.txt \
  -F "file=@/local/path/file.txt" \
  -b cookies.txt
DELETE /services/files/delete/{path}
حذف فایل یا پوشه
curl -X DELETE https://api.up4u.ir/services/files/delete/docs/file.txt \
  -b cookies.txt
POST /services/files/createdir/{path}
ایجاد پوشه جدید
curl -X POST https://api.up4u.ir/services/files/createdir/docs/newfolder \
  -b cookies.txt
POST /services/files/rename/{path}
تغییر نام فایل یا پوشه
📦 Body Parameters (JSON):
پارامترنوعتوضیح
destinationPathstringنام جدید (مسیر کامل)
curl -X POST https://api.up4u.ir/services/files/rename/docs/oldname.txt \
  -H "Content-Type: application/json" \
  -d '{"destinationPath": "docs/newname.txt"}' \
  -b cookies.txt
POST /services/files/copy/{path}
کپی فایل یا پوشه
curl -X POST https://api.up4u.ir/services/files/copy/docs/file.txt \
  -H "Content-Type: application/json" \
  -d '{"destinationPath": "backup/file.txt"}' \
  -b cookies.txt
POST /services/files/zip/{path}
فشرده‌سازی فایل یا پوشه (تکی)
curl -X POST https://api.up4u.ir/services/files/zip/docs \
  -H "Content-Type: application/json" \
  -d '{"zipName": "myarchive"}' \
  -b cookies.txt
POST /services/files/bulk-zip
فشرده‌سازی چند فایل/پوشه (گروهی)
curl -X POST https://api.up4u.ir/services/files/bulk-zip \
  -H "Content-Type: application/json" \
  -d '{"paths": ["docs/file1.txt", "docs/file2.txt"], "zipName": "archive"}' \
  -b cookies.txt
POST /services/files/extract/{path}
خارج کردن فایل فشرده (Zip)
curl -X POST https://api.up4u.ir/services/files/extract/docs/archive.zip \
  -H "Content-Type: application/json" \
  -d '{"destinationPath": "docs/extracted"}' \
  -b cookies.txt
GET /services/files/audit/{path}
دریافت گزارش فعالیت فایل (تعداد دانلود، آپلود و ...)
curl -X GET https://api.up4u.ir/services/files/audit/docs/file.txt \
  -b cookies.txt

👑 3. مدیریت (Admin APIs)

Admin Only
⚠️ این APIها فقط برای کاربران با نقش admin قابل استفاده هستند.
GET /services/admin/users/all
دریافت لیست همه کاربران
curl -X GET https://api.up4u.ir/services/admin/users/all -b cookies.txt
POST /services/admin/users/add
ایجاد کاربر جدید
curl -X POST https://api.up4u.ir/services/admin/users/add \
  -H "Content-Type: application/json" \
  -d '{"username": "newuser", "password": "pass123", "roles": ["user"]}' \
  -b cookies.txt
DELETE /services/admin/users/remove/{username}
حذف کاربر
curl -X DELETE https://api.up4u.ir/services/admin/users/remove/newuser -b cookies.txt
GET /services/admin/storage/info
دریافت اطلاعات فضای ذخیره‌سازی کاربر
curl -X GET https://api.up4u.ir/services/admin/storage/info -b cookies.txt
GET /services/admin/sessions
دریافت لیست نشست‌های فعال
curl -X GET https://api.up4u.ir/services/admin/sessions -b cookies.txt

🌍 4. لینک‌های عمومی (Public Share)

No Auth Required
🔗 این APIها بدون نیاز به احراز هویت قابل استفاده هستند. لینک‌های تولید شده قابل اشتراک‌گذاری عمومی می‌باشند.
POST /services/files/share
ایجاد لینک اشتراک‌گذاری عمومی برای یک فایل
📦 Body Parameters (JSON):
پارامترنوعتوضیح
filePathstringمسیر فایل (نسبی)
maxDownloadsintحداکثر تعداد دانلود (0 = نامحدود)
hoursValidintاعتبار لینک بر حسب ساعت (0 = نامحدود)
curl -X POST https://api.up4u.ir/services/files/share \
  -H "Content-Type: application/json" \
  -d '{"filePath": "docs/file.pdf", "maxDownloads": 10, "hoursValid": 24}' \
  -b cookies.txt
✅ Response Example:
{
  "shareUrl": "https://api.up4u.ir/public/share/abc123token",
  "token": "abc123token"
}
GET /public/share/{token}
دانلود فایل از طریق لینک عمومی (بدون نیاز به لاگین)
curl -X GET https://api.up4u.ir/public/share/abc123token -o file.pdf

👤 5. اطلاعات کاربر (User Info)

User Info
GET /services/user/quota
دریافت اطلاعات حجم استفاده شده (Quota)
curl -X GET https://api.up4u.ir/services/user/quota -b cookies.txt
✅ Response Example:
{
  "used": 10485760,
  "quota": 10737418240,
  "username": "master",
  "rootPath": "/home/master"
}