Ошибка перенаправления подписанного URL S3 на iphone - PullRequest
0 голосов
/ 30 августа 2018

Я разработал приложение Angular 2 с бэкэндом Node.js. Я использую AWS-SDK для хранения файлов из приложения. В приложении есть функция, с помощью которой пользователь может загрузить файл PDF, который был загружен в приложение (и сохранен на s3). По сути, приложение запрашивает сигнурл у s3 для конкретного объекта, как в блоке кода ниже.

var params = {
            Bucket: projectid,
            Key: docName,
            VersionId: versionid,
            ResponseContentDisposition: 'attachment; filename ="' + docName+ '_' + versionid + '.pdf"'

        };
        var url = {
            link: s3.getSignedUrl('getObject', params)
        }
        res.status(200).send(url);

Этот URL-адрес возвращается во внешний интерфейс, а затем angular открывает подписанный URL-адрес в новом окне браузера, как показано в строке кода ниже.

        window.open(url.link.toString());

Это прекрасно работает на настольных компьютерах и телефонах Android. Когда я пытаюсь открыть его на iPhone, он открывает новую вкладку, показывает значок файла и затем говорит «загрузка не удалась». Однако ссылка в браузере верна и будет работать на любом другом устройстве, как указано.

Мне нужно, чтобы это работало на всех устройствах. Может ли кто-нибудь предложить другой способ загрузки файла через угловой интерфейс, который подходит для iPhone?

...