Files
quoter/docs/upload-quickstart.md
Untone ae0fc9a18d
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Successful in 1m53s
CI / test (push) Failing after 9m28s
0.6.4-thumb-upgrade
2025-09-03 10:21:17 +03:00

155 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 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)