Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (1)
  • Как взаимодействовать с 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',
    })
    Ответ написан
    Комментировать