0.6.4-thumb-upgrade
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Successful in 1m53s
CI / test (push) Failing after 9m28s

This commit is contained in:
2025-09-03 10:21:17 +03:00
parent f0b327a99a
commit ae0fc9a18d
15 changed files with 1180 additions and 202 deletions

154
docs/upload-quickstart.md Normal file
View File

@@ -0,0 +1,154 @@
# 🚀 Upload API - Quick Start
**Быстрый старт для интеграции с Quoter Upload API**
## 🔗 Endpoints
```
Base URL: https://files.dscrs.site
GET / - Информация о пользователе
POST / - Загрузка файлов
GET /{filename} - Получение файла
```
## 🔐 Аутентификация
```http
Authorization: Bearer <jwt-token>
```
## 📤 Загрузка файла
### 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)