0.6.4-thumb-upgrade
This commit is contained in:
154
docs/upload-quickstart.md
Normal file
154
docs/upload-quickstart.md
Normal 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)
|
||||
Reference in New Issue
Block a user