# 🚀 Upload API - Quick Start **Быстрый старт для интеграции с Quoter Upload API** ## 🔗 Endpoints ``` Base URL: https://files.dscrs.site GET / - Информация о пользователе POST / - Загрузка файлов GET /{filename} - Получение файла ``` ## 🔐 Аутентификация ```http Authorization: Bearer ``` ## 📤 Загрузка файла ### JavaScript ```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 ```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 ```bash curl -X POST \ -H "Authorization: Bearer your-token" \ -F "file=@/path/to/file.jpg" \ https://files.dscrs.site/ ``` ## 📊 Информация о пользователе ```javascript 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 } } } ``` ## 📁 Получение файла ```javascript 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` - Ошибка сервера ## 💡 Пример использования ```javascript // Полный пример 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](upload-client-guide.md)