API
- 1 ответ
- 0 вопросов
1
Вклад в тег
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',
})