0

Мы создаем приложение для бета-версии консоли C# для наших клиентов, в котором они просто вставляют общую папку/файл в URL-адрес диска Google или один диск ИЛИ выпадающее окно ИЛИ и т. Д. И в фокусе нам нужно для извлечения файла и процесса его ...Извлечь файлы из облачной общей папки

Я просто хотел бы знать, как мы извлечь эти облака файлы без каких-либо подсказок для аутентификации (как указано URL будет б общественности, поэтому он не должен просить Id PW)

Любая помощь от вас всех экспертов?

+0

Если URL-адрес является общедоступным/общим, почему вы беспокоитесь об аутентификации? – PhillipH

+0

Philliph, многие из наших клиентов не имеют учетной записи в облачном хранилище. У них есть только URL, который мы отправили по электронной почте. Мы не хотим, чтобы они создавали учетную запись для этого процесса, или многие клиенты могут не использовать это, потому что они должны создать учетную запись. – user875123

+0

Опять же ... если URL-адрес является общедоступным или общим, зачем им нужны учетные данные? Вы говорите, что в облаках Google/Microsoft нет публичного/общего ресурса? Если это так, вы не можете получить доступ к таким ресурсам без учетных данных. Если вы не хотите, чтобы пользователь вводил учетные данные, вам придется их жестко закодировать в своем приложении и самостоятельно обрабатывать обратную передачу внутри слоя HttpClient. – PhillipH

ответ

1

С OneDrive вы можете использовать "shares" API для получения ссылки для обмена без аутентификации.

Вам просто нужно правильно закодировать URL-адрес совместного доступа и передать его конечной точке API. Подробности кодирования приведены на странице выше, но это просто кодировка с кодировкой в ​​формате base64.

GET https://api.onedrive.com/shares/{encoded_sharing_url}/root/content

API-интерфейс возвращает содержимое файла.

Редактировать: Я получил URL-адрес немного неправильно./Shares/API возвращает «общий доступ», который выглядит как объект диска. Чтобы получить доступ к фактическому совместно используемому файлу, вам необходимо добавить/root перед частью/content пути. Я обновил это выше.

+0

Ryan, Thanks + 1 для совместного использования кода фрагмента кода. Я попробовал это, к сожалению, он выбросил мне ошибку, которую я не могу понять: - | Спасибо за вашу помощь. – user875123

+0

Вы следовали правилам кодирования здесь: https://dev.onedrive.com/shares/shares.htm#encoding-sharing-urls? В противном случае, если вы можете использовать код, который вы используете для сборки URL-адрес я могу взглянуть на то, что пойдет не так. –

+0

Ryan, я поделился своим кодом только в этой теме ... http://stackoverflow.com/q/37622021/4499378 – user875123