Как настроить Yandex Object Storage (S3) и NodeJS. [easy-yandex-s3]

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ก.ค. 2024
  • В этом видео мы рассмотрим как работать с S3-совместимым хранилищем от Yandex Cloud. Не поленись посмотреть видео целиком, всего 10 минут!
    00:00 - Вступление
    00:45 - Создание аккаунта
    01:45 - Что такое Каталог?
    02:30 - Подключаем Object Storage (S3)
    03:30 - Объясняю свойства бакета
    05:15 - Создание Сервисного аккаунта
    07:10 - Переходим к бекенду
    09:20 - Последний шаг написания кода
    10:05 - Работает!
    10:15 - Заключение
    Yandex Object Storage. Всё невероятно просто: сначала регистрируемся, подключаем платёжный аккаунт, создаем бакет, создаем сервисный аккаунт - и можно использовать!
    Easy Yandex S3 модуль: www.npmjs.com/package/easy-ya...
    Зачем нужно использовать S3: • Backend Теория: Органи...
    Git проекта примера: github.com/powerdot/ID-easy-y...
    Документация Yandex Cloud по ролям доступа аккаунтов: cloud.yandex.ru/docs/iam/conc...
    Easy Yandex S3 - это JS модуль, упрощающий работу с файлами в удаленном хранилище Yandex Object Storage.
    На моём канале я пробую рассказывать не только «как и что делать», но еще и о новых технологиях, интересных модулях, библиотеках, фреймворках и о многом другом.
    IlyaDevman.subscribe();
    #NodeJS #S3 #Файлы
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 49

  • @user-om1rg8nq1q
    @user-om1rg8nq1q 2 ปีที่แล้ว +8

    БРАТ!! ДРУГ!!! РОДНОЙ МОЙ!!! СПАСИБО ТЕБЕ ОГРОМНОЕ!!!!!!! почти неделю бился с амазоном... бедная моя кошка, столько мата выслушала за эти дни.... а ты вот взял и решил мою боль за 11 минут!!!! Ты крут! Давай не останавливайся! Кстати, если будет время, сделай подробный видос по деплою MERN на VDS с настройкой NGINX

    • @user-si3dd9sb3h
      @user-si3dd9sb3h 5 หลายเดือนก่อน

      Я думал я один такой горемыка

  • @mitivil1134
    @mitivil1134 2 ปีที่แล้ว +1

    Да пожалуй лучшая библиотека по работе с Web storage
    Всё настолько понятно, что даже непонятному станет понятно ))))

  • @user-gj1gm6zr4b
    @user-gj1gm6zr4b 11 หลายเดือนก่อน +1

    Спасибо, полезный модуль 👍

  • @primuspilus2924
    @primuspilus2924 ปีที่แล้ว +1

    Очень полезное видео. Спасибо

  • @AlexCoder007
    @AlexCoder007 9 หลายเดือนก่อน +1

    Полезное видео ! Благодарю

  • @IlyaSlezkin
    @IlyaSlezkin 2 หลายเดือนก่อน

    спасибо, круть!

  • @PrimeLeatherGoods
    @PrimeLeatherGoods 3 หลายเดือนก่อน

    Огонь 🔥 я то думал как фоточки на сервере принимать и хранить😊

  • @igortrifonov9339
    @igortrifonov9339 2 ปีที่แล้ว +1

    Спасибо большое за видео! Очень доступно и понятно объяснил :)

  • @user-gn9wr3ik4b
    @user-gn9wr3ik4b ปีที่แล้ว

    тоооооппп, ты красавчик просто!!! Спасибо огромное , выручил ооочень!!! лайк и подписка

  • @mikhailkh8560
    @mikhailkh8560 ปีที่แล้ว

    Отличная либа! Спасибо большое. Переписал ее на тайп (расширение поменял) и воткнул в Nest - полет нормальный.
    А вот d.ts-ка , чет не взлетела. Хотя вроде правильно все описал.

  • @onlybrinty5780
    @onlybrinty5780 3 ปีที่แล้ว

    Молодец! Крутое видео

  • @EdontworryE
    @EdontworryE 2 ปีที่แล้ว

    Спасибо!)

  • @user-ro3lc5zn3t
    @user-ro3lc5zn3t 7 หลายเดือนก่อน

    Спасибо, видео помогло, максимально доступно объяснил и показал.

  • @Марат-Багаутдинов
    @Марат-Багаутдинов ปีที่แล้ว

    ааааааа, ты мой спаситель, спасибоо

  • @Thefsk1
    @Thefsk1 ปีที่แล้ว

    Лучший!

  • @SerkerovADiL
    @SerkerovADiL 9 หลายเดือนก่อน

    лучший

  • @IlyaDevman
    @IlyaDevman  3 ปีที่แล้ว +5

    Наверное добавлю, что это все-таки инструкция "от и до" подключения именно Yandex Object Storage.
    То есть, если захочешь подключить настоящий S3, то тебе придется использовать другую библиотеку, например, s3 (дада, npm i s3)
    Про это тоже могу заснять видео с подробной инструкцией, а ты можешь поддержать меня лайком и подпиской ;)

    • @user-ib7rw1bj2d
      @user-ib7rw1bj2d 3 ปีที่แล้ว

      Спасибо за видео, а можно с помощью этой библиотеки читать-записывать json файлы в object storage? В идеале хотелось бы посмотреть как из яндекс функции на node js записать и прочитать json в object storage.

    • @IlyaDevman
      @IlyaDevman  3 ปีที่แล้ว

      Привет! Спасибо за отзыв:)
      Могу добавить в конце недельки этот функционал!
      Чтобы я его сделал удобнее, можешь примерно описать цель, которую будешь достигать с чтением и записью JSON?
      Тип:
      Подключаю в бакет, там может быть сколько угодно джисонов.
      пишу s3.readJSON({name: "wow.json"}) - и получаю настроки
      так же пишу s3.writeJSON({name: "wow.json"}, {content: ...})
      Чем подробнее, тем лучше я постараюсь это сделать :)

    • @user-ib7rw1bj2d
      @user-ib7rw1bj2d 3 ปีที่แล้ว

      @@IlyaDevman я хочу попробовать хранить настройки конкретного пользователя в json, имя файла - это id пользователя, а в самом файле настройки заданные пользователем с возможностью их изменения, например {“name”: “my name”, “age”: “25”, “save_option”: “yes”}. Хранение логов пользователя тоже было бы интересно. При чтении настроек функция возвращает заполненные переменные, если файла нет, то пустые, а при записи - если файл есть, то перезаписываемся значения, а если его не было, то создаём. И, вообще, стоит ли в этом направлении двигаться или все-таки serverless db будет быстрее и дешевле, может быть есть уже похожий опыт и сравнение?

    • @mikhailkh8560
      @mikhailkh8560 ปีที่แล้ว

      YeasyYandexS3 - это обертка над S3 амазона.

  • @dimageorgiev5798
    @dimageorgiev5798 3 ปีที่แล้ว

    👍

  • @vancez9580
    @vancez9580 3 หลายเดือนก่อน

    Не понимаю, как выводится в консоль ссылка на локацию фото, всё что у меня выводит после команды npm i easy-yandex-s3 ,
    added 1 package, changed 25 packages, and audited 445 packages in 13s
    151 packages are looking for funding
    run `npm fund` for details
    found 0 vulnerabilities, при вводе повторной команды, тоже самое
    В чём может быть проблема?

  • @user-ux9mh4bq5g
    @user-ux9mh4bq5g 2 ปีที่แล้ว +1

    Все отлично, но я попал сюда после просмотра репозитория у тебя на гитхабе тк не совсем понял для чего это нужно, а из-за того, что я еще не очень глубоко разбираюсь в теме, я просмотрел видос и не особо понял для чего все это было нужно, и прочитав описание и комменты тоже ничего не смог найти, но мне понравилось то, как ты подаешь информацию, и я решил глянуть остальные видосики на твоем канале, и только тогда смог найти видео о том, для чего нужно S3, поэтому было бы здорово если бы ты указывал ссылки на смежные темы в описании. И вообще все видосы класс, продолжай в том же духе. PS ссылка на то для чего нужен S3 - th-cam.com/video/aFGPehPrOCY/w-d-xo.html.

  • @AndreyProspero
    @AndreyProspero หลายเดือนก่อน

    Привет
    Что на счет интеграции под боевой проект например на битрикс? Насколько дорого использовать s3 под хранение статики, как что-то вроде cdn?
    Предположим это гигов 5-10 разнородных объектов.
    Ну и если это не дешево, то наверное только хранение бекапов в холодном хранилище имеет смысл?

  • @shtuchka.666
    @shtuchka.666 2 ปีที่แล้ว

    Добрый день! Видео хорошее, есть вопросец. Этот метод отправляет файл целиком, не частями, правильно?

  • @ShevchenkoKirill
    @ShevchenkoKirill 8 หลายเดือนก่อน

    По инструкции не заработало, пришлось устанавливать библиотеку aws-sdk и подключаться к яндекс-облаку через нее.

  • @AzizjanAyupov_leo
    @AzizjanAyupov_leo 4 หลายเดือนก่อน

    для дотнета есть ченить?

  • @gerafko
    @gerafko ปีที่แล้ว

    Привет. Пытаюсь подключить интеграцию на Go. Не могу никак разобраться, хотел быв у тебя спросить чистый JSON запрос для разовой авторизации и загрузки файла. Ну и дальнейшего получения ссылки на него прямой. Только у тебя увидел хоть что-то похожее на правду

  • @user-st5to8xt4i
    @user-st5to8xt4i 2 ปีที่แล้ว

    Доброго времени суток. Есть ли в либе возможность загрузки -- и получения 3 разных разрешений изображения?

    • @IlyaDevman
      @IlyaDevman  2 ปีที่แล้ว

      Привет, нет, так как это не поддерживается на уровне s3, для этого нужно реализовать вычисления на своей стороне с использованием какого-нибудь jimp
      При загрузке изображения, сжимать его на сервере и загружать в хранилище 3 картинки, в 3 разрешениях

  • @railiabarieva9931
    @railiabarieva9931 2 ปีที่แล้ว

    Привет! А можно скачать с бакета другого пользователя? И что тогда указать в "Bucket:". Я прописываю название бакета и выходит вот такая ошибка "S3 getObject error: InvalidBucketName: The specified bucket is not valid."

    • @mikhailkh8560
      @mikhailkh8560 ปีที่แล้ว

      Этот бакет должен быть подключен к твоему сервис аккаунту, который юзаешь.

  • @groznyjairan6887
    @groznyjairan6887 2 ปีที่แล้ว

    Добрый день, можете пожалуйста снять видео о том как скачивать файлы с помощью ноды?

  • @alexanderbudakov1216
    @alexanderbudakov1216 2 ปีที่แล้ว +1

    Привет! Скажи пожалуйста, а в этой программе можно писать только на JS? Или можно брать и другие языки?

  • @user-kc7du1fc3t
    @user-kc7du1fc3t 3 ปีที่แล้ว +1

    Привет очень крутая у тебя библиотека. А замути для нее интеграцию в NestJS, цены тебе тогда вообще не будет! Лайк и подписка с колокольчиком тебе в задаток.

    • @mikhailkh8560
      @mikhailkh8560 ปีที่แล้ว

      О, а есть дока как такие интеграции писать? Я либу к себе в Нест воткнул. А вот про интеграции пока не слыхал

  • @dzangiev
    @dzangiev 2 ปีที่แล้ว +1

    Немного не понимаю, что значит исходящий трафик, типа если у меня на сервера хранилища от яндекс будет лежать файл размером 50 мегабайт и если его скачают 20 раз, то у меня спишется 1 ГБ исходящего трафика? Это же очень не выгодно если сайт из разряда скачивания различных приложений, видео и других файлов размером больше 1 Гб, ведь за каждое скачивание таких файлов пользователем мне придётся платить? Если мои опасения подтвердятся, то я не понимаю, как живут вышеперечисленные сайты, у них собственные сервера или хранилища не учитывающие исходящий трвфик.

    • @IlyaDevman
      @IlyaDevman  2 ปีที่แล้ว +4

      Смотри, здесь есть два момента: жесткие диски и трафик.
      1) Ты можешь сделать свое собственное хранилище дома. Купить 4 4-х терабайтника и организовать свой собственный raid-массив для репликации данных, дабы не потерять их, если один-два диска умрут. Можно взять варианты по 100$ и проводить одну замену примерно раз в 5 лет, но это если нагрузка маленькая. Конечно, если у тебя десятки тысяч соединений и с дисков одновременно скачивается дата со скоростью больше 5-10 ГБ/сек, то нужны не только более дорогостоящие ССД, но и Enterprise-уровень (коммерческие, более надежные), их стоимость начинается десятками тысяч долларов, заканчиваясь космическими ценами.
      Ну и имея свой домашний сервер, ты платишь за интернет, который по вечерам падает в скорости, а днем провайдер может проводить технические работы и твой сервис будет недоступен.
      2) Интернет - это обмен сигналами, то есть электричество, а его пока не научились делать бесплатным, поэтому даже теоретически трафик не может быть бесплатным. Тем более трафик сети, которая защищена от перебоев и имеет гарантию пропускной способности (что днем, что вечером будет одна и та же скорость). Трафик для компаний стоит намного дороже, чем трафик для обычных людей в квартирах, но и ответсвенности подрядчики (операторы) берут на себя больше.
      А теперь представим себе, что есть компания, которая за пару копеек будет раздавать твой контент практически без ограничения скорости, которая гарантирует аптайм (доступность серверов), которая гарантирует, что данные не пропадут (своевременная замена дисков). Это очень удобно и очень дешево, учитывая еще штат ртов: технические специалисты, юристы, бухгалтеры, продукт-менеджеры и так далее.
      1 гб обычного хранилища - всего 1.5 рубля в месяц.
      10000 Get’ов - 0.24
      Если у тебя на сервере 5 гигов файлов и происходит 100.000 скачиваний за месяц, то ты заплатишь ~ 3.9 рублей за месяц.
      Дорого? Безусловно.
      Но даже эту цену можно сделать еще дешевле, если распределить файлы, которые редко скачивают на холодные хранилища (хранение дешевле, трафик дороже) и пользоваться CDN, для распределения нагрузки, увеличения доступности и большей амортизации затрат на трафик.
      Кстати на виртуальных серверах (впс/вдс) трафик тоже не бесплатный, в тариф как правило включены первый 1ТБ, а дальше оплата за каждый Гигабайт. Зависит от оператора к оператору, но такое ограничение есть практически везде, поэтому сервер за 5$ на DigitalOcean может начать стоить 10$, если лимит трафика будет израсходован.
      Вот такая вот история)

    • @dzangiev
      @dzangiev 2 ปีที่แล้ว +2

      @@IlyaDevman огромное спасибо за разъяснение этой темы

  • @user-ld6fc1lm2c
    @user-ld6fc1lm2c 2 ปีที่แล้ว

    а как стащить фотку из буффера, и как организовать модульность в nest js для этой либы

    • @user-ld6fc1lm2c
      @user-ld6fc1lm2c 2 ปีที่แล้ว

      из буффера в запросе

    • @mikhailkh8560
      @mikhailkh8560 ปีที่แล้ว

      В сервисе создаешь экземпляр либы, и юзаешь ее в методах сервиса от души.

    • @user-ld6fc1lm2c
      @user-ld6fc1lm2c ปีที่แล้ว

      @@mikhailkh8560 😍😍

  • @AzizjanAyupov_leo
    @AzizjanAyupov_leo 4 หลายเดือนก่อน

    абсолютно гейский канал. одобряю 👍

  • @Марат-Багаутдинов
    @Марат-Багаутдинов ปีที่แล้ว +1

    БЕДА! всё было хорошо на localhost, а на deploy мне хостинг говорит пиз**й ко всем чертям, пакте easy-yandex-s3 занимает 200 mb. У меня социальная сеть со всми монгусами, експрессами... занимает 120, а эта з**упа 200. А на хостинге можно только 240 mb, а у меня 320 выходит