Вот как это сделать с axios
.Важными моментами являются:
- Аутентификация (с использованием опции
user
) - Использование модуля
FormData
для отправки многокомпонентных данных - Настройка
maxContentLength
достаточно высокая опция, позволяющая загрузить ваш файл.
Код ниже.
import axios from 'axios';
import fs from 'fs';
import FormData from 'form-data';
const formData = new FormData();
// Open file stream
const newFile = fs.createReadStream(binaryPath);
// Add form field params
formData.append('file', newFile, 'my_filename.apk');
formData.append('custom_id', 'npm_uploaded_apk');
axios({
url: 'https://api-cloud.browserstack.com/app-automate/upload',
method: 'post',
headers: formData.getHeaders(),
auth: {
username:'my_browserstack_username',
password: 'my_browserstack_access_key',
},
data: formData,
maxContentLength: 1073741824,
})
.then(response => {
// The object with the 'app_url' parameter is in the 'data' field of the response.
console.log('POST successful: ', response.data);
})
.catch((error) => {
console.log('POST error: ', error);
});
Дополнительная информация об этом в этой теме GitHub .