• Как взаимодействовать с Yandex Object Storage через JS?

    @Borigaldi
    Примерно такой код для Node.js. Доки здесь

    const AWS = require('aws-sdk');
    require('dotenv').config(); // для получения переменных из окружения Node.js
    
    class YandexCloud {
    
      constructor () {
        this.aws = new AWS.S3({
          endpoint: 'https://storage.yandexcloud.net', 
          accessKeyId: process.env.YA_STORAGE_ACCESS_KEY, // берем ключ из переменной окружения
          secretAccessKey: process.env.YA_STORAGE_SECRET_KEY, // берем секрет из переменной окружения
          region: 'ru-central1',
          httpOptions: {
            timeout: 10000,
            connectTimeout: 10000
          },
        });
      }
    
      upload = async ({file,path,fileName}) =>  {
        try {
          const params = {
            Bucket: 'название', // название созданного bucket
            Key: `${path}/${fileName}`, // путь и название файла в облаке (path без слэша впереди)
            Body: file, // сам файл
            ContentType: 'text/plain', // тип файла
          }
          const result = await new Promise(function(resolve, reject) {
            this.aws.upload(params, function(err, data) {
              if (err) return reject(err);
              return resolve(data);
            });
          });
          return result;
        } catch (e) {
          console.error(e);
        }
      }
    }
    
    const YaCloud = new YandexCloud();
    YaCloud.upload({
      file: '', // файл
      path: 'путь/в/облаке',
      fileName: 'файл.txt',
    })
    Ответ написан
    Комментировать
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    Все красиво объяснил Nkly777, только в блоке PS merge с rebase перепутаны.
    Добавлю картинок.

    git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
    (ветка devel "растворяется" в основной ветке)
    518b8dbce1cd4f96b30de9782ae38fcd.png
    git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
    (devel остается отдельной веткой, к которой можно вернуться)
    1ba8186d879d46ff85ea7c1e192328e2.png
    git chery-pick idea - забрать коммиты из ветки idea
    2717e3091f644ef2954aa2de4514f446.png
    Ответ написан
    2 комментария
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    @Nkly777
    git chery-pick - ты забираешь комиты из одной ветки в другую, это бывает полезно когда изменения сделаные другим разработчиком в его ветке, прямо сейчас нужны тебе в твоей ветке, и что бы не писать этот код заново, ты забираешь его комит себе в ветку

    git rebase master - ты синхронизируешься с главной веткой в которую коммитят все разработчики проекта, это полезно когда кто-то изменил участок кода с которым ты сейчас работаешь в своей ветке, дабы через неделю ты смог без проблем смержиться с master веткой. Обычно делается каждое утро перед началом рабочего дня и в конце когда фича готова.

    git merge - обычно используется когда у вас 2 и более master ветки (к примеру master и prototype) в этих ветках очень много комитов (и rebase здесь не подходит) и обчно через пару недель, maintainer репозитория наработки из prototype ветки "сливает" в master ветку по средствам этого самого git merge

    P.S. Что бы легче предствить разницу между git merge и git rebase. Представь что merge как собачка на молнии у одежды - "сшивает" комиты по дате их создания.
    В то время как git rebase как пожарная лестница - при применении твои коммиты крепится на конец родительской ветки

    git merge используйте для мержа фич и фиксов в master ветку (как и делает это Github)
    а git rebase используется для своей ветку в которой вы работаете над фичей что бы забрать последние изменения с master ветку (для этого есть очень удобная команда `git pull --rebase origin master`, аналог 3х команд (`git checkout master; git pull origin master; git checkout mybrach; git rebase master`)
    Ответ написан
    2 комментария