Comments 10
а зачем мы файлы вычитываем из ридера в память? у нас же все работает с эффективными io.Reader - их и надо использовать.
Ну хватит людей плохому учить, пожалуйста! У вас одна реализация интерфейса, второй не будет примерно никогда, зачем он здесь?
не совсем понял что вы имели ввиду - почему плохого и что вам не нравится тоже неясно
Имеют ввиду что в вашем примере нет смысла создавать интерфейс т.к он ничего вам не даёт.
Для тестов? Их нет
Для избавления от зависимости? Вы интерфейс создали рядом с типом который его реализует, а не использует.
По сути интерфейс ради интерфейса
Про чтения файла в память вам уже написали. Что будет если у вас 2гб ОЗУ а вам пришлют файл на 4гб?
Не очень понял зачем в проект затащили Gin...если не используется ничего кроме роутера и хелпера для отправки json, откройте go.mod файл и подумайте, сколько реально вы по факту используете того, что импортнули
Имхо, всего 3 месяца на Go (судя по гитхабу), а уже статьи на всех ресурсах (полагаю одни и те же), телеграм с абсолютно разнородной инормацией.. если вы подписчиков хотите, вам бы не программирование, а что-нибудь другое выбрать)
всего 3 месяца на Go
что-нибудь другое выбрать
Понятно, что тут только в коучи по Go :)) Я 20+ лет в C#, штук восемь, наверное, сертификатов MS по .NET и у меня до сих пор нигде ни одной статьи, и даже блога своего нет, не говоря уже о Телеграманале - не считаю себя достойным высокого звания Автора.
Про чтения файла в память вам уже написали. Что будет если у вас 2гб ОЗУ а вам пришлют файл на 4гб?
У gin дефолтный лимит на файлы 32mb - очевидно, что если в планах принимать файлы >32mb, то нужно и оптимизировать и, может, инструменты другие использовать
По интерфейсу - спасибо за объяснение, подумаю
Да, вы правы - в Go не так много времени - до этого 3 года писал на NodeJS, но это не мешает показывать другим людям как сделать что-то
Тут, например, кроме интерфейса, *неясной зависимости в виде Gin и reader'a более опытные люди не нашли ошибок, поэтому я считаю проект вполне удачным
S3 обеспечивает ограничение доступа только на уровне bucket, что без отсутствия какой-то прослойки между ним и сетью делает его ограничения доступа чуть-чуть более чем бесполезными.
а как правильно выдавать "изображения товаров" с s3 в мир? подписывать токен и проксипасс?
Простой сервер примерно похож на кашу из топора, судя по объёму кода.
Go + Minio: как написать простой сервер для взаимодействия с файлами