GOLANG_BOOKS Telegram 973
🛠 Массовая конвертация изображений с использованием Go и параллелизма


🔍 Проблема

• При запуске маркетплейса векторных изображений [Vectopus.com](https://vectopus.com) разработчики забыли реализовать поддержку формата WebP
• Это ухудшало SEO и замедляло загрузку страниц
• Нужно было конвертировать 500 000+ SVG-файлов в WebP _ретроспективно_

⚙️ Решение: CLI-инструмент на Go

Создан инструмент на Go, обрабатывающий SVG-файлы в несколько этапов:

1. Загрузка SVG из Amazon S3
2. Конвертация в PNG
3. Добавление водяного знака (опционально)
4. Конвертация PNG в WebP
5. Загрузка WebP обратно в S3
6. Обновление метаданных в PostgreSQL
7. Удаление временных файлов

Задача, рассчитанная на несколько дней, была выполнена за несколько часов.

🗃 Архитектура хранилища

• Все изображения — в Amazon S3 (SVG — приватный бакет, PNG — публичный)
• Метаданные — в PostgreSQL с полиморфными связями
• Новые загрузки обрабатываются через SQS + Lambda + EventBridge

Выводы

• Использование Go дало высокую производительность при низких издержках
• Масштабируемость и надёжность решения
• Параллелизм Go отлично подходит для batch-обработки медиа

📖 Подробнее



tgoop.com/golang_books/973
Create:
Last Update:

🛠 Массовая конвертация изображений с использованием Go и параллелизма


🔍 Проблема

• При запуске маркетплейса векторных изображений [Vectopus.com](https://vectopus.com) разработчики забыли реализовать поддержку формата WebP
• Это ухудшало SEO и замедляло загрузку страниц
• Нужно было конвертировать 500 000+ SVG-файлов в WebP _ретроспективно_

⚙️ Решение: CLI-инструмент на Go

Создан инструмент на Go, обрабатывающий SVG-файлы в несколько этапов:

1. Загрузка SVG из Amazon S3
2. Конвертация в PNG
3. Добавление водяного знака (опционально)
4. Конвертация PNG в WebP
5. Загрузка WebP обратно в S3
6. Обновление метаданных в PostgreSQL
7. Удаление временных файлов

Задача, рассчитанная на несколько дней, была выполнена за несколько часов.

🗃 Архитектура хранилища

• Все изображения — в Amazon S3 (SVG — приватный бакет, PNG — публичный)
• Метаданные — в PostgreSQL с полиморфными связями
• Новые загрузки обрабатываются через SQS + Lambda + EventBridge

Выводы

• Использование Go дало высокую производительность при низких издержках
• Масштабируемость и надёжность решения
• Параллелизм Go отлично подходит для batch-обработки медиа

📖 Подробнее

BY Golang Books




Share with your friend now:
tgoop.com/golang_books/973

View MORE
Open in Telegram


Telegram News

Date: |

Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. Add up to 50 administrators best-secure-messaging-apps-shutterstock-1892950018.jpg Content is editable within two days of publishing Invite up to 200 users from your contacts to join your channel
from us


Telegram Golang Books
FROM American