Skip to content

Conversation

@axtox
Copy link

@axtox axtox commented Jun 8, 2025

Описание

Добавлен пример использования Amazon S3 SDK для работы с S3-хранилищем Timeweb Cloud на платформе .NET. Пример демонстрирует основные операции с объектным хранилищем, включая создание и удаление бакетов, загрузку и скачивание файлов, а также работу с метаданными объектов. Проект сопровождается подробной инструкцией по запуску через CLI, Docker и Visual Studio Code.

Мотивация

Особенности работы TimeWeb S3 с новыми версиями AWS SDK (как выяснилось, PutObject с latest 4.x AWS.SDK не работают с TimeWeb S3) которые могут вызвать трудности в подключении на современных стеках (предположительно влияющие на интеграцию с разными языками, а не только .NET)
Этот репозиторий призван показать работающие версии AWS SDK, чтобы сократить время внедрения TimeWeb S3 в проекты.

Что сделано

  • Найдена самая актуальная совместимая версия AWS SDK (<=3.5.10.2) для корректной работы с Timeweb Cloud S3, также найден способ работать с последней 4.0.2 через использование флага DisableDefaultChecksumValidation
  • Реализован консольный пример на .NET (sample.cs), демонстрирующий работу с S3 API Timeweb Cloud через официальный AWS SDK, точно также как в других примерах в этом репозитории
  • Поддержка конфигурации через переменные окружения и файл .env (используется DotNetEnv).
  • Добавлены основные операции:
    • Регион бакета
    • Список бакетов
    • Отправка текста в файл
    • Отправка файла
    • Получение списка файловы
    • Скачивание файла
    • Получение метаданных файла
    • Копирование файла
    • Присвоение тега файлу
    • Получение информации о тегах в файле
    • Создание правил жизненного цикла файлов (правила по тегу, по названию папок)
    • Получение правил жизненного цикла файлов
    • Удаление всех тегов файла
    • Удаление правил жизненного цикла файлов
    • Удаление всех файлов
    • Удаление бакета
  • Для вывода результатов операций используется форматированный JSON с помощью Spectre.Console.Json.
  • Добавлены обработчики ошибок для всех операций.
  • Оформлена документация по запуску и использованию примера (см. README.md).
  • Пример поддерживает запуск через dotnet CLI, Docker и Visual Studio Code tasks.

Тикет

#4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant