Максим
Multipart upload Трамп запретил?
у вас есть файл на 5гб видео, как вы его надежно с учетом сбоев будете загружать с того места, где оборвалось, не написав кода поверх multiform/upload?
Максим
вопрос по аплоаду в s3 - я с ним не работал плотно, только на мелких файлах, а разве s3 sdk не дает возможности грузить в мультипарте и механизма ретраев ? все это с фронта в обход бэка.
дает, кусками можно загрузить и потом вызвать метод склейки вопрос только как разорвать файл на стороне клиента на куски и что делать, если кусок отвалился
Максим
Так этот код уже написан и является частью SDK.
да? если файл перестал грузиться (сеть упала на 5 сек), sdk возобновит загрузку? можно посмореть на примеры или ссылку на методы возобновления (resume) для uploading?
Eugene
не, это какая-то серверная шляпа. гонять петабайты через бэк это далеко не всегда хорошая идея, не всегда можно и т.д.
Eugene
про заливку на с3
Kirill
Сразу видно вкатун, увидел живых разрабов и пребываешь в глубоком удивлении 😀
В местах где я работал ,разрабы по майндсету схожи очень с некоторыми людьми которые здесь общаются в форме о которой я писал выше) интересно стало как в других местах обстоят дела
Максим
про заливку на с3
ну tusd позволяет заливать на машину, s3 один из стораджев если не хотите через сервер (как tusd делает), а сразу в s3, то на клиенте можете разорвать большой файл на куски, загрузить напрямую в s3 кусками, куски (их id) хранить на клиенте и потом (когда все куски загружены) — в s3 вызвать склейку, передав id кусков в порядке, в котором надо собственно tusd это и делает, просто еще берет работу на себя работу с кусками от фронта, храня данные состояния общей загрузки а tusd клиенты через сервер знают чего загрузилось и чего можно еще разорвать и надо ли в несколько чанков долбят tus-сервер писать самому или взять tusd — вопрос trade off
Eugene
вопрос то был про сдк фронта.
Dmitrii
В местах где я работал ,разрабы по майндсету схожи очень с некоторыми людьми которые здесь общаются в форме о которой я писал выше) интересно стало как в других местах обстоят дела
Так и обстоят. Иногда умеренно, иногда очень токсичные люди. Каждый убеждён, что он больше других понимает) А потому срач не умолкает) А если разраб не такой, то не какой он не разраб - ряженый с клавиатурой 😀
Антон
Для этого нужны толковые лиды
Часто лидам пох, у них другие заботы
Dmitrii
Хороших лидов мало
Максим
Это все делает s3manager сам.
да, выше кидал код, коорый tusd выполняет для склейки — он через MultipartUpload и склеивает но в доке что вы указали речь идет о parts которые вы туда загрузили, вопрос – как вы эти куски доставите и как проконтролируете, что куски загружены и в каком порядке?
Максим
Это все делает s3manager сам.
ну круто, что вызвал метод загрузки, а s3 sdk сделает сам, упало оно или нет я вот взял стороннее решение, которое кусками оркестрирует, как сделали vimeo/cloudlfare и supabase
Максим
https://developers.cloudflare.com/stream/uploading-videos/resumable-uploads/ https://developer.vimeo.com/api/upload/videos#understanding-upload-approaches
Максим
я кстати с s3 на gcp скорее перееду, и этот сторадж есть в tusd, что как бы облегчило из коробки работу мне (если коротко — 0 работы, один флаг заменить и апи-ключи к стораджу добавить), уж извините, что код не хочу писать на эту утилитарную штуку и пользуюсь готовым
Илья
это ты еще до rust moment не дошел)
Поделишься ссылкой на растеров?
yosakohf
Поделишься ссылкой на растеров?
можешь самые популярные просто взять, желательно не только на русском
Максим
Go-cloud поддерживает аналогичное поведение для gcp и для s3. И не нужен демон отдельный как в tusd.
можно пример как развернуть решение, которое загружает файл в 5Гб с обрывами? как клиент рвет его на чанки, и как эти чанки оркестрируются, чтобы склеить в нужном порядке через multipart и без бека, на s3 можно разве грузить напрямую с киента? я вот не ресечил этот вопрос в любом случае я спор не понял, я не буду переделывать готвоое решени, а tusd возник в обсуждении только из-за подхода к хукам
Anton
Без понятия. Не копал в тайпскрипте.
Максим
я так и не понял, как загрузить с учетом обрывов кроме напсианяи по сути tus логики, только костялми
Mikhail
Это не клиент определяет поведение, а сервер куда шлете. S3 бай дефолт умеет чанками. Значит и клиенты могут
Максим
Это не клиент определяет поведение, а сервер куда шлете. S3 бай дефолт умеет чанками. Значит и клиенты могут
но говорят сразу на s3, типа "зачем через сервер гонять", ведь "s3 все умеет"
Anton
Я так и не понял какой там клиент. На го я уже два примера клиентов привёл.
Mikhail
Сразу да, но иногда нужна абстракция. Зависит от бизнеса и что у вас за бэк
Максим
Сразу да, но иногда нужна абстракция. Зависит от бизнеса и что у вас за бэк
у меня tus все делает, готовый resumable uplaod что предлагают — выглядит как отрывчатые размышления без погружения, но со строгой нотой критики tus подхода
Максим
клиент, который возобновит загрузку, например на 4.5Гб при загрузке 5, чтобы загружать в multipart, сразу на s3/gcp
Максим
и да, фреймворк-агностик — у меня ангуляр и еще, причины писать самому, имея готовый к деплою https://hub.docker.com/r/tusproject/tusd
Максим
у s3 кстати какой-то невероятно жирный пример с лямбдой, а не напрямую https://github.com/aws-samples/amazon-s3-multipart-upload-transfer-acceleration и без обработки фейлов
Максим
советчики...
kdp
мысль о том, что если у тебя пофейлилась загрузка парта c айди X, то просто еще раз ее попытайся зааплоадить тебе не подходит?
Максим
мысль о том, что если у тебя пофейлилась загрузка парта c айди X, то просто еще раз ее попытайся зааплоадить тебе не подходит?
подходит вопрос тот же, можно пример клиента и лямбды/сервера drop-in? но не tus, для чего он прямо и написан прямо 1 в 1 по условию задачи
kdp
нет. нельзя. сам ищи. апи там простой. инициируешь мультипарт загрузку. грузишь все части. обозначаешь что загрузка завершена. s3 все парты на своей стороне после этого склеивает и один файл.
Максим
нет. нельзя. сам ищи. апи там простой. инициируешь мультипарт загрузку. грузишь все части. обозначаешь что загрузка завершена. s3 все парты на своей стороне после этого склеивает и один файл.
нашел! tus клиент грузит чанки сервер проксирует в хранилище клиент опрашивает какие загружены и продолжает дальше когда финиш — сервер склеивает это буквально весь tus
Mikhail
у С3 просто HTTP запросы, что мешает в ручную отработать?
Максим
у С3 просто HTTP запросы, что мешает в ручную отработать?
напрямую без сервера? можно примеры? полные условия: https://t.me/golang_jobsgo/111014
kdp
чем описанный выше алгоритм не устраивает? ты случайно не путаешь HTTP multipart запросы с MultipartUpload api в S3? Если не путаешь, то какие примеры тебе нужны? Такие, где http post обернут ловлей ошибок и повтором запроса? Или что?
Максим
чем описанный выше алгоритм не устраивает? ты случайно не путаешь HTTP multipart запросы с MultipartUpload api в S3? Если не путаешь, то какие примеры тебе нужны? Такие, где http post обернут ловлей ошибок и повтором запроса? Или что?
если все просто, почему нет примеров готовых клиентов и есть tusd? почему схема от AWS содержит столько точек взаимодействия? https://t.me/golang_jobsgo/111017 и по сути дублирует только без "протокола" работу tusd
Mark
Насколько я помню, в го в принципе мало чего готового, и нужное приходится самому крафтить
Mark
Тут не как с пайтоном
Максим
Насколько я помню, в го в принципе мало чего готового, и нужное приходится самому крафтить
есть готовое, но несколько человек говорят зачем его брать, руками проще
kdp
откуда мне знать. может ты их не нашел. может не нашел, потому что так делать моветон из-за проблем, который там при авторизации или что на фронте кулхацкеры к этому процессу могут присосаться и начать слать террабайтные файлы. засрав весь с3 чтобы оунер бабок побольше за сервис заплатил.
Anton
Насколько я помню, в го в принципе мало чего готового, и нужное приходится самому крафтить
Да тут беседа оказывается с самого начала была не про го а про браузерный файл аплоад. Расходимся.
kdp
разницы между запросами из голанга и из фронтовой js странички нет.
Mark
А так, главное чтобы было удобно тому, кто разрабатывает. В готовом разобраться иногда больший затрах, бывает проще под себя собрать.
Максим
чем тебе не устраивает диаграмма? Она валидная, просто замени их апи на S3 REST API и вауаля
меня лично чем не устраивает: - мне надо взять этот код с примерами 🙂 и что-то заменять, примеры на реакте втаскивать в ангуляр мой - все это передеплоить - заморочить аутнтификацией/авторизацией и косрами - "просто передлать" на ваши вызовы и что-то там еще допилить или задеплоить tusd из хаба докера, добавив в env ключи и cors-original host, и взяв фреймворк-агностик ts-tus-client,
kdp
Есть.
какая?
Anton
какая?
CORS надо на бакете иметь. Права на запись в бакет нужны из браузера. Сетевая доступность от браузера до бакета нужна. Разница ключевая.
Mark
Я вот недавно чтение из s3 делал, узнал про next_token - получил жизненный урок о том, что люди деньги зарабатывать хотят, а потому хер ты получишь всю выгрузку 😄
Anton
Чтобы долететь до луны надо всего лишь сесть на автобус который идет до луны.
Eugene
Да тут беседа оказывается с самого начала была не про го а про браузерный файл аплоад. Расходимся.
угу, вопрос был - умеет ли фронтовый клиент лить напрямую большие файлы на с3. по идее с3сдк это должен уметь искаропки. но не щупал, лил только мелочь типа фоток, там это было не важно.
Максим
Mikhail
а можно задачу целиком? Чем этот tus не устривает? Зачем фронту хотите мороки с С3 и авторизациями добавить?
Mikhail
если уж на то пошло, то на фронт можно и aws\s3 либу затащить что умеет делать это все под капотом. Но опять, авторизация
Максим
если уж на то пошло, то на фронт можно и aws\s3 либу затащить что умеет делать это все под капотом. Но опять, авторизация
Возобновлением занимается? Есть ли обертки чтобы s3 заменить на gcp/azure? Что с корсами?
Максим
Eugene
а можно задачу целиком? Чем этот tus не устривает? Зачем фронту хотите мороки с С3 и авторизациями добавить?
представь себе сервис где у тебя миллион юзеров и все льют файлы. если они льют их напрямую в с3 - это одно дело, а если это все льется через твой бэк, это другое дело.
Eugene
если уж на то пошло, то на фронт можно и aws\s3 либу затащить что умеет делать это все под капотом. Но опять, авторизация
с авторизацией вообще нет проблем, бэк выдаст токен и фронт польет без проблем.
Eugene
вопрос был лишь в том - умеет ли с3 сдк фронтовый ресторить при обрыве или нет.