В процессе работы над внедрением решения на базе 1С ЕРП возникла необходимость хранить (выгружать, загружать, удалять и проч.) часть документов в корпоративном облаке выполненном на базе Ceph Object Gateway S3 - не найдя простого решения решили написать своё.
Данное решение представляет собой комплекс средств на выбор: внешнюю обработку которая использует внешнюю Windows DLL-библиотеку и кроссплатформенное решение полностью реализованное средствами платформы 1С. В качестве базы для разработки библиотеки был выбран SDK от Amazon, благодаря чему решение стало совместимо как со сторонними S3-объектными хранилищами (например: Ceph Object Gateway S3 с которым единственное представленное на этом сайте решение не работает или с Yandex Object Storage), так и с "ванильным" AWS S3. Библиотека реализует набор функций, вызываемых непосредственно из кода 1С, необходимых для выполнения основных операций с хранилищем.
Данное решение может работать как на сервере, так и на клиенте, как в синхронном, так и в асинхронном (реализуется средствами 1С - в примере не представлено) режиме, в тестовой обработке показан синхронный режим работы. При возникновении ошибок генерируется исключение содержащее подробный текст ошибки. Решение может работать в 1С начиная с версии 8.0, но мы рекомендуем использовать версию платформы не ниже 8.3.10. Ограничение версии связано с отсутствием в более ранних релизах 1С встроенных функций работы с base64 (например: Base64Строка), существует возможность использования сторонних решений и реализаций данных функций в этом примере не рассматриваемых.
На приложенных скриншотах показаны некоторые приёмы работы библиотеки с объектным хранилищем, тестовая обработка обладает интуитивно понятным интерфейсом и в отдельном описании не нуждается. Все примеры показаны на примере бесплатного аккаунта Amazon S3 и без труда воспроизводятся.
Данное решение в части библиотеки проверено под ОС Windows, в части кроссплатформенного решения проверено под ОС Windows и Ubuntu Linux. Детальное описание функций, как и сама тестовая обработка и все необходимые для работы DLL-библиотеки (код закрыт!) представлены в составе электронной поставки, код кроссплатформенной части решения открыт, имеет 100% покрытие комментариями и в отдельном руководстве не нуждается!
Обращаем Ваше внимание на то, что Azure Blob Storage не является S3-совместимым хранилищем! Это собственная технология Майкрософт и работа решения с таким хранилищем потенциально возможна только через отдельный шлюз обеспечения совместимости, например: s3proxy - данное свободное ПО не включено в поставку решения и не тестировалось!