Файл живёт
дольше ссылки

A3.Drive хранит файлы и документы компаний и продуктов экосистемы A3. Сотрудники работают с дисками компании и проектов, продукты хранят вложения сделок, обращений и записи звонков. Ссылки указывают на идентификатор файла, а не на адрес в хранилище.

Не приложение поверх облака, а слой платформы

4метода в ядре контракта: put, get, bind, unlink
1объект на любое число привязок: место в квоте файл занимает один раз
1идентификатор file_id на всю жизнь файла: новые версии и перенос его не меняют
6языков, на которых опубликована документация API

Что умеет A3.Drive

Ядро модели данных работает с первого дня: объект, держатели, права и контракт. Остальные функции добавляются поверх него и не меняют основу.

Идентичность файла

file_id не меняется никогда. Новая версия или перенос файла в другое хранилище не ломают ни одной ссылки в продуктах.

Привязки вместо копий

Один файл используется в нескольких продуктах одновременно. Это не копии, а один объект с несколькими держателями, и место он занимает один раз.

Диски компании, сотрудника и проекта

Дерево папок, которым управляют люди. Системные вложения продуктов в него не попадают и учитываются отдельно.

Права на файлы и папки

Вопрос «кто видит файл» решается в одном месте. Доступ выдаётся пользователю, подразделению, проекту или по публичной ссылке.

Версии, откат и корзина

История правок с восстановлением любой версии. Удаление проходит через корзину, поэтому ошибка сотрудника обратима.

Публичные ссылки

Файл или папка для внешних участников: срок действия, пароль и отзыв. По ссылке с правом на изменение партнёр редактирует документ без учётной записи A3.

Синхронизация с компьютером

Клиент для Windows и macOS работает по журналу изменений: сервер отдаёт дельту по курсору, а не пересчитывает дерево целиком.

Путь файла через контракт

  1. 1

    Загрузка файла

    Файл попадает в хранилище, создаются объект и его первая версия. Если такой файл уже загружен, система предлагает привязать существующий объект вместо дубля.

  2. 2

    Привязка

    Продукт привязывает объект к своей сущности: сделке, обращению или счёту. Пять привязок из одного продукта дают пять держателей, а не одного.

  3. 3

    Выдача по ссылке

    Приложение запрашивает файл по file_id. A3.Drive проверяет права и выдаёт подписанную ссылку на несколько минут, для изображения сразу нужного размера.

  4. 4

    Снятие привязки

    Продукт снимает ровно одну привязку по binding_id. Повторный вызов ничего не ломает, а удаление объекта наступает как следствие, без отдельной команды.

Удаление: следствие, а не команда

Объект живёт, пока у него есть хотя бы один держатель. Никто не удаляет файл напрямую: продукт снимает свою привязку, A3.Drive пересчитывает держателей и решает, что делать с файлом.

Версии, откат и корзина
  • Держателем считается привязка к конкретной сущности, а не продукт целиком
  • Срок хранения сильнее любого держателя, включая прямого владельца
  • Снятие последней привязки отправляет объект в корзину, а не стирает его
  • Из корзины объект восстанавливается вместе с версиями и правами
  • Тот же механизм освобождает место при неоплате и не трогает файлы со сроком хранения

Данные остаются в своей юрисдикции

Регион является свойством объекта, а не места, откуда пришёл запрос. Оригинал хранится в кластере аккаунта, резервные копии остаются там же, а file_id не зависит от региона и сохраняется при переносе.

Страны, для которых прорабатывается размещение

  • Казахстан
  • Россия
  • Узбекистан
  • Кыргызстан
  • Монголия

Командировка сотрудника не переносит данные в другую страну: регион привязан к аккаунту, а не к IP-адресу запроса.

Как устроено размещение данных

Продукты работают через контракт, а не напрямую с хранилищем

У продуктов экосистемы нет собственного хранилища. Они обращаются к A3.Drive через тот же API-контракт, что и интеграция клиента, без внутренних обходных путей, поэтому внешняя интеграция получает те же гарантии.

Документация API

Подключите A3.Drive как основу хранения

Расскажите, какие сущности будут держать файлы и в каком регионе работает аккаунт. Этого достаточно, чтобы настроить права доступа интеграции, выпустить ключи и начать с ядра контракта.