Как скачать файл xlsx в формате Blob по прямой ссылке, чтобы после этого сохранить его в сторе?
Всем привет! Мне необходимо скачать файл в формате blob по прямой ссылке на S3. Ссылка выглядит следующим образом: "https://example.amazonaws.com/public/example/.../e...".
Методами axios не получилось достучаться к S3.
... axios.request({ responseType: 'arraybuffer', url: download_src, method: 'get', headers: { 'Content-Type': 'blob', }, }); ... |
... axios.request({ responseType: 'arraybuffer', url: download_src, method: 'get', headers: { 'Content-Type': 'blob', }, }); ...
Решения подобные этому здесь не подойдут, так как задача исключает использование кнопок и т.д. :
const link = document.createElement('a'); link.href = `exampleLink`; document.body.appendChild(link); link.click(); document.body.removeChild(link); |
const link = document.createElement('a'); link.href = `exampleLink`; document.body.appendChild(link); link.click(); document.body.removeChild(link);
Важно загружать файл в определенный момент и хранить его в сторе, для дальнейшей работы с ним. Подскажите какие могут быть методы решения?
Дополнительно:
почему нужно пользоваться axios а не штатным XMLHttpRequest? причем тут 'Content-Type': 'blob'? что за ошибку тебе верну amazon? смотри подробности в браузерной консоли вкладка network
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для того чтобы скачать файл xlsx в формате Blob по прямой ссылке и сохранить его в сторе, вам понадобится использовать JavaScript. Ниже приведен пример кода, который позволит вам это сделать:
```html
function downloadFile() {
fetch('ссылка_на_ваш_файл.xlsx')
.then(response => response.blob())
.then(blob => {
const url = window.URL.createObjectURL(new Blob([blob]));
const a = document.createElement('a');
a.href = url;
a.download = 'file.xlsx';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
});
}
```
В этом примере мы используем функцию `fetch` для загрузки файла по прямой ссылке. Затем мы преобразуем полученный ответ в формат Blob с помощью метода `blob()`. Далее мы создаем ссылку на Blob с помощью `URL.createObjectURL()` и создаем элемент ``, чтобы пользователь мог скачать файл. После этого мы кликаем по элементу ``, чтобы начать скачивание файла, и освобождаем URL с помощью `URL.revokeObjectURL()`, чтобы избежать утечек памяти.
Вы можете добавить этот код на вашу страницу и изменить ссылку на файл xlsx на нужную вам. После нажатия на кнопку "Скачать файл", пользователь сможет загрузить файл xlsx и сохранить его в своем хранилище.