s3.php¶
Модуль управления S3-хранилищем: создание и удаление аккаунтов и бакетов, управление файлами, получение статистики использования и тарифных планов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
create_account | создание аккаунта | Создает новый бесплатный S3 аккаунт для клиента, включая создание бакета и учетных данных. |
create_bucket | создание бакета | Создает новый бакет в существующем S3 аккаунте. |
delete_account | удаление аккаунта | Полностью удаляет S3 аккаунт и все связанные с ним данные. |
delete_bucket | удаление бакета | Удаляет указанный бакет из S3 аккаунта. |
delete_file | удаление файла | Удаляет указанный файл из бакета. |
get_available_locations | получение локаций | Возвращает список доступных географических локаций для размещения S3 хранилищ. |
get_buckets_rmq | получение бакетов (RMQ) | Возвращает список бакетов с информацией об использовании хранилища и трафика через RMQ. |
get_files | получение файлов | Возвращает список файлов и папок в указанном бакете с поддержкой пагинации и поиска. |
get_users | получение пользователей | Возвращает список S3 аккаунтов пользователя или всех пользователей (для администратора) с информацией о трафике. |
list_plans | получение тарифных планов | Возвращает список доступных тарифных планов S3 с ценами в разных валютах. |
show_key | показ ключа | Возвращает расшифрованный ключ доступа (access_key или secret_key) для S3 аккаунта. |
s3/create_account¶
Создает новый бесплатный S3 аккаунт для клиента, включая создание бакета и учетных данных.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_account |
| token | ✅ | string | Токен авторизации |
| plan_id | ✅ | int | ID тарифного плана |
| bucket_name | ✅ | string | Имя бакета для создания |
| location | ❌ | string | Локация (по умолчанию NL) |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=create_account" \
--data "token=HOSTKEY_TOKEN" \
--data "plan_id=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
Примеры ошибок
{
"code": -1,
"message": "S3 account was creating, however bucket create error - Bucket already exists"
}
s3/create_bucket¶
Создает новый бакет в существующем S3 аккаунте.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_bucket |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета для создания |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=create_bucket" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "create_bucket",
"message": {
"status": 200,
"body": "Response body from S3",
"headers": {}
}
}
Примеры ошибок
s3/delete_account¶
Полностью удаляет S3 аккаунт и все связанные с ним данные.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_account |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Идентификатор S3 аккаунта для удаления |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=delete_account" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
Примеры ошибок
s3/delete_bucket¶
Удаляет указанный бакет из S3 аккаунта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_bucket |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета для удаления |
| id | ❌ | integer | Идентификатор клиента (для администраторов) |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=delete_bucket" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
Примеры ошибок
s3/delete_file¶
Удаляет указанный файл из бакета.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_file |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета |
| filename | ✅ | string | Путь к файлу для удаления |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=delete_file" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE" \
--data "filename=VALUE"
Пример успешного ответа
Примеры ошибок
s3/get_available_locations¶
Возвращает список доступных географических локаций для размещения S3 хранилищ.
HTTP-метод: GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_available_locations |
| - | - | - | Других параметров нет |
Пример запроса
Пример успешного ответа
Примеры ошибок
s3/get_buckets_rmq¶
Возвращает список бакетов с информацией об использовании хранилища и трафика через RMQ.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_buckets_rmq |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Идентификатор S3 аккаунта |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=get_buckets_rmq" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "get_buckets_rmq",
"message": [
{
"name": "my-bucket",
"usage": 1048576,
"created_at": "2023-10-01T12:00:00Z"
}
],
"bandwidth": 5242880,
"usage_storage": 1048576,
"quota": 10737418240,
"snapshots": [
{
"bandwidth_usage": 5242880,
"storage_usage": 1048576,
"created_at": "2023-10-27T10:00:00Z"
}
],
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
Примеры ошибок
s3/get_files¶
Возвращает список файлов и папок в указанном бакете с поддержкой пагинации и поиска.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_files |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Идентификатор S3 аккаунта |
| bucket_name | ✅ | string | Имя бакета |
| continuation_token | ❌ | string | Токен для пагинации |
| max_keys | ❌ | int | Максимальное количество файлов (до 100) |
| search | ❌ | string | Строка поиска в именах файлов |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=get_files" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "bucket_name=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "get_files",
"files": [
{
"key": "folder/file.txt",
"original_key": "folder/file.txt",
"size": 1024,
"last_modified": "2023-10-27T10:00:00Z"
}
],
"folders": [
{
"key": "folder/"
}
],
"next_token": "eyJDb250aW51YXRpb25Ub2tlbiI6IkFCQzEyMyJ9"
}
Примеры ошибок
s3/get_users¶
Возвращает список S3 аккаунтов пользователя или всех пользователей (для администратора) с информацией о трафике.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_users |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID клиента (для администратора) |
| plan_id | ❌ | int | Фильтр по ID тарифного плана |
| s3uid | ❌ | string | Фильтр по ID S3 аккаунта |
| ❌ | string | Фильтр по email | |
| billing | ❌ | string | Фильтр по локации биллинга |
| period_from | ❌ | string | Начало периода для статистики (YYYY-MM-DD) |
| period_to | ❌ | string | Конец периода для статистики (YYYY-MM-DD) |
| limit | ❌ | int | Лимит записей |
| order | ❌ | string | Поле сортировки |
| order_by | ❌ | string | Направление сортировки (ASC/DESC) |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=get_users" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"action": "get_users",
"s3_users": [
{
"id": 123,
"s3uid": "s3-12345-abcde",
"email": "user@example.com",
"plan_id": 5,
"region": "NL",
"quota": 10737418240,
"traffic": 5242880,
"storage_usage": 1048576,
"created_at": "2023-10-01T12:00:00Z"
}
]
}
Примеры ошибок
s3/list_plans¶
Возвращает список доступных тарифных планов S3 с ценами в разных валютах.
HTTP-метод: GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_plans |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID конкретного плана (для администратора). Если передан, возвращается один план вместо списка. |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X GET \
--data "action=list_plans" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"action": "list_plans",
"plans": [
{
"id": 1,
"name": "Free Plan",
"quota": 1073741824,
"active": 1,
"locations": "NL,DE",
"storage_type": "standard",
"bandwidth_limit": 0,
"monthly_rub": 0,
"monthly_eur": 0,
"monthly_usd": 0,
"traffic_overage_price_rub": 0,
"traffic_overage_price_eur": 0,
"traffic_overage_price_usd": 0,
"storage_overage_price_rub": 0,
"storage_overage_price_eur": 0,
"storage_overage_price_usd": 0,
"price": {
"rub": 0,
"eur": 0,
"usd": 0
}
}
]
}
Примеры ошибок
s3/show_key¶
Возвращает расшифрованный ключ доступа (access_key или secret_key) для S3 аккаунта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show_key |
| token | ✅ | string | Токен авторизации |
| s3uid | ✅ | string | Идентификатор S3 аккаунта |
| s3_key | ✅ | string | Тип ключа: 'access_key' или 'secret_key' |
Пример запроса
curl -s "https://invapi.hostkey.ru/s3" -X POST \
--data "action=show_key" \
--data "token=HOSTKEY_TOKEN" \
--data "s3uid=VALUE" \
--data "s3_key=VALUE"