Документация / База знаний

Импорт из вашего собственного бакета

Зарегистрируйте бакет один раз, импортируйте целую папку файлов и обновляйте её почти бесплатно.

Последнее обновление:

Если ваши документы уже лежат в объектном хранилище (S3 или в любом другом, которое говорит на том же API), укажите нам на бакет вместо того, чтобы загружать файлы по одному. Мы читаем их там, где они лежат. Бакет вы регистрируете один раз в разделе Your storage, а затем импортируете из него столько раз, сколько захотите.

Что нужно создать на вашей стороне#

  1. Папку внутри бакета с файлами, которые вы хотите проиндексировать: handbook/policies/, а не весь бакет, — если только вам действительно не нужен весь бакет. Это префикс, если ваше хранилище называет это так.
  2. Ключ доступа, который может только читать эту папку. Импорт получает список папки и читает объекты внутри неё, и больше он ничего не может. Мы никогда не пишем в ваш бакет, никогда ничего в нём не удаляем и никогда не читаем за пределами зарегистрированной вами папки.

Затем нажмите Register a bucket и заполните:

  • Storage host. Хост, на котором отвечает ваше хранилище, сам по себе: без схемы впереди, без бакета и без пути в нём. Мы всегда подключаемся по https, потому что любой другой вариант отправил бы ваш ключ доступа по сети в открытом виде. Адрес в частной сети отклоняется при регистрации и проверяется снова, уже по адресу, до которого мы фактически достучались, при каждом импорте.
  • Bucket и Region, если у вашего хранилища есть регионы.
  • Folder. Это граница, а не просто отправная точка. Импорт может её сузить (именно это делает Only this folder в самом импорте), но никогда не может её расширить, поэтому источник, зарегистрированный на handbook/, никогда не удастся уговорить прочитать остальной бакет.
  • Access key id и Secret access key.

Что происходит с секретным ключом#

Секретный ключ доступен только для записи. Он хранится в зашифрованном виде, и ничто в продукте не считывает его обратно: ни список источников, ни сам источник, ни API секретов. Впоследствии вы видите, что ключ сохранён, но никогда — какой именно; поэтому поле пусто каждый раз, когда вы снова открываете источник.

Поэтому восстановить его для вас мы не можем. Чтобы сменить ключ, впишите новый секрет поверх старого; если оставить поле пустым, сохранится тот ключ, который у нас уже есть. Удалить ключ, оставив источник на месте, невозможно, потому что источник без ключа не может ничего импортировать.

Один импорт — один документ#

Каждый файл внутри папки становится частью одного-единственного документа — так же, как обход целого сайта превращается в один документ из множества страниц. При этом каждый фрагмент хранит файл, из которого он получен, так что ответ ссылается на конкретный файл. Если вам нужен один документ на файл, импортируйте для каждого документа более узкую папку.

Документ появляется в коллекции сразу же, как черновик, а на вкладке Processing видно, как идёт импорт. Ничто не попадает в поиск, пока задача не завершится и вы не опубликуете документ, — ровно так же, как при загрузке файла.

Действуют ограничения на загрузку, предусмотренные вашим тарифом: тот же предельный размер одного файла и предел на количество файлов, которые читает один импорт. Достижение этого предела сообщается в задаче как предупреждение, а не как ошибка, поэтому сузьте папку и импортируйте остальное отдельно.

Повторный импорт, чтобы подхватить изменения#

Импортируйте в тот же документ снова всякий раз, когда содержимое бакета ушло вперёд. Каждый файл сравнивается с тем, что у нас уже есть: файл, содержимое которого не изменилось, не загружается и не индексируется повторно, а если внутри папки не изменилось вообще ничего, задача завершается, ничего не записав. Это достаточно дёшево, чтобы повторять сколь угодно часто.

Повторный импорт — это не редактирование. Название, метки и статус публикации остаются такими, какими вы их задали.

Переиндексация — это другое, и именно здесь совершают ошибку. Переиндексация перестраивает фрагменты из копий, которые у нас уже есть, а не из вашего бакета, поэтому она не видит файл, который вы там добавили, изменили или удалили. Есть одно исключение, и это не лазейка: если наши собственные копии документа пропали, переиндексация читает бакет заново, чтобы их восстановить, и задача об этом сообщает. Ваше хранилище читает именно повторный импорт.

Изменение или удаление источника#

Редактирование источника (новый хост, другой бакет, заменённый ключ) меняет то, что прочитает следующий импорт, и оставляет всё уже проиндексированное ровно таким, как есть.

Удаление источника стирает регистрацию и сохранённый ключ, и больше ничего. Оно отклоняется, пока существует хотя бы один документ, импортированный из этого источника, и в отказе называется один из них. Это сделано намеренно: эти документы — ваше проиндексированное содержимое, и удаление элемента конфигурации никогда не должно их уничтожать. Сначала удалите документы, которые вам больше не нужны, а затем удалите источник.

Что бы вы здесь ни делали, в вашем собственном бакете никогда ничего не меняется. Мы только читаем из него.

Консоль

Эти страницы доступны только для чтения. Тестовый звонок, ключи API и актуальный справочник API находятся в консоли, где выполнен вход в ваш аккаунт.

Открыть консоль