3.6 KiB
3.6 KiB
🚀 Upload API - Quick Start
Быстрый старт для интеграции с Quoter Upload API
🔗 Endpoints
Base URL: https://files.dscrs.site
GET / - Информация о пользователе
POST / - Загрузка файлов
GET /{filename} - Получение файла
🔐 Аутентификация
Authorization: Bearer <jwt-token>
📤 Загрузка файла
JavaScript
async function uploadFile(file, token) {
const formData = new FormData();
formData.append('file', file);
const response = await fetch('https://files.dscrs.site/', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`
},
body: formData
});
if (!response.ok) {
throw new Error(`Upload failed: ${response.status}`);
}
return await response.text(); // Возвращает filename
}
Python
import requests
def upload_file(file_path, token):
with open(file_path, 'rb') as f:
files = {'file': f}
headers = {'Authorization': f'Bearer {token}'}
response = requests.post(
'https://files.dscrs.site/',
headers=headers,
files=files
)
response.raise_for_status()
return response.text.strip()
cURL
curl -X POST \
-H "Authorization: Bearer your-token" \
-F "file=@/path/to/file.jpg" \
https://files.dscrs.site/
📊 Информация о пользователе
async function getUserInfo(token) {
const response = await fetch('https://files.dscrs.site/', {
headers: {
'Authorization': `Bearer ${token}`
}
});
return await response.json();
// { user_id, username, quota: { current_quota, max_quota, usage_percentage } }
}
📁 Получение файла
async function getFile(filename, token) {
const response = await fetch(`https://files.dscrs.site/${filename}`, {
headers: {
'Authorization': `Bearer ${token}`
}
});
return await response.blob();
}
🚨 Лимиты
- Размер файла: 500 МБ максимум
- Квота пользователя: 12 ГБ максимум
- Форматы: изображения, аудио, видео, документы
❌ Коды ошибок
401- Неверный токен413- Превышена квота или размер файла415- Неподдерживаемый формат500- Ошибка сервера
💡 Пример использования
// Полный пример
const client = {
baseUrl: 'https://files.dscrs.site',
token: 'your-jwt-token',
async upload(file) {
const formData = new FormData();
formData.append('file', file);
const response = await fetch(`${this.baseUrl}/`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${this.token}` },
body: formData
});
if (!response.ok) throw new Error(`Upload failed: ${response.status}`);
return await response.text();
},
async getUserInfo() {
const response = await fetch(`${this.baseUrl}/`, {
headers: { 'Authorization': `Bearer ${this.token}` }
});
return await response.json();
}
};
// Использование
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
const filename = await client.upload(file);
console.log(`Загружен: ${filename}`);
📚 Полная документация: upload-client-guide.md