Скачивание файла по общей ссылке Amazon

Мне было поручено найти способ сохранять файлы по ссылке на чью-то амазонку. Эти файлы представляют собой вложения, загруженные в систему продажи билетов, и когда я использовал их API для извлечения билета, мне дается ссылка, подобная приведенной ниже (я удалил все личные данные и заменил их на XXXXX)

https://s3.amazonaws.com/cdn.XXXXXXX.com/data/helpdesk/attachments/production/36012348362/original/1.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-CredentialXXXXXXX east-1% 2Fs3% 2Faws4_request & X-Amz-Date = 20180808T205357Z & X-Amz-Expires = 86400 & X-Amz-Signature = XXXXXXXXXXXXXX-Amz-SignedHeaders = Host

Как видите, срок действия ссылок истекает через 1 день. Я соединяю 2 API вместе, и мне нужно иметь возможность загрузить фактический файл во второй API, а не просто размещать ссылку, которая истекает через день. Я попытался использовать Webclient downloadfileAsync, но все, что я получил, - это пустой файл. Я могу перейти по ссылке в моем браузере и щелкнуть правой кнопкой мыши, сохранить изображение как, поэтому я знаю, что это возможно, но мне не повезло программно. Ниже приведен фрагмент кода, который я использую в настоящее время, чтобы попытаться загрузить его.

using (WebClient wc = new WebClient())
{                    
    wc.DownloadFileAsync(new System.Uri(url), "image.jpg");
}

Любое понимание или помощь были бы потрясающими.

Заранее спасибо!

Однажды у меня была аналогичная проблема, когда я что-то загружал программно - это работало в браузере, но не в моем коде. Я обнаружил, что мне пришлось подделать пользовательский агент моего запроса, чтобы сервер увидел меня как браузер.

Reinstate Monica Cellio 09.08.2018 17:40

Звучит многообещающе, как вы подделали сервер, чтобы думать, что вы браузер?

user519670 09.08.2018 17:56

Есть ли шанс, что файл был пуст, потому что вы запросили его до завершения асинхронной загрузки?

jarmod 09.08.2018 18:04

Я тоже думал об этой возможности, я просто смотрел размер файла в проводнике. Хотя я уделил этому хорошую минуту или около того. Я собираюсь протестировать неасинхронный запуск и посмотреть, что произойдет ... Хорошо, я попробовал. ЭТО СРАБОТАЛО!!!!

user519670 09.08.2018 18:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
197
1

Ответы 1

Я смог заставить это работать, не используя асинхронную версию DownloadFile. Спасибо всем, кто помог мне решить эту проблему.

Другие вопросы по теме