Сохранение файлов с помощью пакета SDK 7.2 средства выбора файлов в OneDrive для JavaScript
Чтобы можно было сохранять файлы в OneDrive, ваше приложение должно предоставить кнопку, с помощью которой можно программным образом запустить интерфейс средства выбора файлов в OneDrive.
1. Регистрация приложения
Чтобы использовать средство выбора OneDrive, необходимо зарегистрировать приложение на странице регистрации приложение Azure и получить идентификатор приложения. Также необходимо добавить допустимый URI перенаправления для веб-приложения с помощью средства выбора. Это может быть страница, на которой размещен пакет SDK средства выбора, или заданный вами пользовательский URL-адрес. Дополнительные сведения см. в разделе Настройка.
2. Добавление ссылки на пакет SDK
Внедрите пакет SDK на JavaScript для OneDrive в свою страницу.
<script type="text/javascript" src="https://js.live.net/v7.2/OneDrive.js"></script>
3. Запуск средства выбора файла
Чтобы можно было сохранять файлы в OneDrive, ваше приложение должно предоставить кнопку, с помощью которой можно программно открыть средство выбора файлов в OneDrive. Так как этот код откроет всплывающее окно в браузере, необходимо вызвать его в рамках явного действия пользователя, чтобы оно не было заблокировано блокировщиком всплывающих окон.
В рамках метода OneDrive.save(...)
укажите параметры, определяющие поведение средства выбора и то, каким образом средство выбора будет совершать обратные вызовы в ваш код, а также объект options.
<script type="text/javascript">
function launchSaveToOneDrive(){
var odOptions = { /* ... specify the desired options ... */ };
OneDrive.save(odOptions);
}
</script>
<input id="fileUploadControl" name="fileUploadControl" type="file" />
<button onclick="launchSaveToOneDrive">Save to OneDrive</button>
Параметры средства выбора
Вы можете указать, как должно вести себя средство выбора при сохранении файлов, предоставив объект с параметрами, определяющими поведение средства выбора. Этот объект также включает функции обратного вызова, используемые в случае завершения работы средства выбора или возникновения ошибки.
Пример параметров средства выбора файлов
var odOptions = {
clientId: "INSERT-APP-ID-HERE",
action: "save",
sourceInputElementId: "fileUploadControl",
sourceUri: "",
fileName: "file.txt",
openInNewWindow: true,
advanced: {},
success: function(files) { /* success handler */ },
progress: function(percent) { /* progress handler */ },
cancel: function() { /* cancel handler */ },
error: function(error) { /* error handler */ }
}
Параметры
Имя параметра | Описание |
---|---|
clientId | Идентификатор приложения, созданный консолью регистрации приложения для вашей интеграции. |
action | Тип действия, выполняемого над выбранными файлами. Вы можете указать значение save , чтобы сохранять файлы непосредственно в OneDrive, либо значение query , чтобы возвращать идентификаторы, которые можно использовать с API Microsoft Graph или API OneDrive для сохранения файлов в выбранную папку. |
sourceInputElementId | Идентификатор элемента ввода формы (type=file) для файла, который необходимо отправить. |
sourceUri | HTTP, HTTPS или URI данных для файла, который необходимо отправить. OneDrive для бизнеса и SharePoint поддерживают только значения URI данных. |
fileName | Обязательный, если параметр sourceUri представляет собой URI данных. Если значение этого свойства не указано, имя файла будет получено из атрибута имени элемента ввода. |
openInNewWindow | По умолчанию используется значение true. Если указано это значение, интерфейс средства выбора в OneDrive откроется во всплывающем окне. Если указано значение false, интерфейс средства выбора в OneDrive откроется в том же окне. |
viewType | Тип элемента, который можно выбрать. Значение по умолчанию — files . Можно указать параметр folders , чтобы ограничить выбор только папками, или указать параметр all , позволяющий выбрать одновременно файлы и папки. |
accountSwitchEnabled | По умолчанию задано значение true , которое приводит к отображению пользовательского интерфейса смены учетной записи на размещенной странице средства выбора файлов. |
advanced | Коллекция дополнительных свойств, с помощью которых можно более глубоко настроить поведение средства выбора. Эти свойства не нужны в большинстве сценариев. Дополнительные сведения см. в разделе, посвященном расширенным сценариям сохранения. |
nameConflictBehavior | Необязательный параметр, передаваемый в ситуации, когда имя отправляемого файла конфликтует с именем файла, уже имеющегося в папке назначения. Дополнительные сведения см. в разделе, посвященном определению этого параметра. |
success | Вызывается после завершения отправки файла на сервер. Параметр files — это коллекция метаданных, возвращаемых службой для отправленного файла. |
progress | Вызывается в разные моменты времени с числом от 0,0 до 100,0 для указания хода отправки. По крайней мере один раз этот параметр вызывается со значением 100,0. |
cancel | Вызывается, если пользователь нажимает кнопку отмены в средстве сохранения. |
error | Вызывается, если на сервере произошла ошибка, пользователь превысил квоту, у пользователя нет разрешения на отправку файла в выбранное расположение или если пользователь не выбрал файл, который необходимо отправить. |
Примечание. Если параметр openInNewWindow
имеет значение false
, то чтобы можно было ссылаться на пакет SDK для гарантированного вызова функций, сначала необходимо глобально объявить все функции обратного вызова на странице.
При глобальной регистрации к именам функций обратного вызова добавляется префикс oneDriveFilePicker
.
Например, функция success
становится функцией oneDriveFilePickerSuccess
.
Типы действий
С помощью параметра action пакета SDK средства выбора вы можете указать, как средство выбора должно вести себя.
Для действия save()
разрешены указанные ниже значения.
Значение | Описание |
---|---|
save |
Сохраняет файл, предоставленный sourceInputElementId или sourceUri , в выбранную папку в OneDrive пользователя. |
query |
Возвращает метаданные API о выбранной папке. Затем ваше приложение отправляет один или несколько файлов в папку, выбранную пользователем. |
4. Обработка объекта response средства выбора
После того как пользователь закончит выбирать файлы, обратный вызов success
получит объект response
.
Этот объект содержит свойства, в том числе свойство value, которое представляет собой коллекцию ресурсов Item с подмножеством свойств элемента.
При использовании действия save
эта коллекция предоставляет метаданные элемента для вновь отправленного файла.
Для действия query
эта коллекция будет содержать метаданные для выбранной папки.
Пример отправки документа
{
"value": [
{
"id": "123456",
"name": "document1.docx",
"size": 12340,
"@content.downloadUrl": "https://contoso-my.sharepoint.com/download.aspx?guid=1231231231a",
"webUrl": "https://cotoso-my.sharepoint.com/personal/user_contoso_com/documents/document1.docx",
"thumbnails": [
{
"id": "0",
"small": { "url": "https://sn3302files.onedrive.live.com/..." },
"medium": { "url": "https://sn3302files.onedrive.live.com/..." },
"large": { "url": "https://sn3302files.onedrive.live.com/..." }
}
]
}
]
}
Пример использования query
для сохранения файла в папку
{
"value": [
{
"id": "1234567!12",
"name": "Project Vroom",
"webUrl": "https://cotoso-my.sharepoint.com/personal/user_contoso_com/documents/project%20vroom",
"folder": { "childCount": 4 }
}
]
}
Расширенные сценарии сохранения
Параметр advanced объекта options имеет указанные ниже определенные свойства.
Имя параметра | Описание |
---|---|
redirectUri | По умолчанию средство выбора использует страницу, с которой оно запущено, в качестве URI перенаправления для аутентификации. Это может быть нежелательно в некоторых сценариях, поэтому вы можете настроить пользовательский URL-адрес, чтобы использовать его вместо этой страницы. Этот URL-адрес должен быть в том же корневом домене и для него должен использоваться тот же протокол, что и для страницы, на которой размещен пакет SDK средства выбора. Целевая страница должна ссылаться на пакет SDK средства выбора в OneDrive так же, как и вызывающая страница. |
Использование пользовательского URI перенаправления
Если ваше приложение представляет собой большое клиентское приложение на JavaScript либо использует параметры строки запроса для поддержания состояния, может быть нежелательным использовать страницу, запускающую средство выбора файлов, в качестве URI перенаправления. Для этого необходимо, чтобы все ваше приложение было повторно загружено во всплывающем окне, что может снизить производительность системы. Вы можете указать альтернативный URI перенаправления с помощью объекта advanced.
var odOptions = {
clientId: "INSERT-APP-ID-HERE",
action: "download",
openInNewWindow: true,
advanced: {
redirectUri: "https://contoso.com/filePickerRedirect.htm"
},
success: function(files) { /* success handler */ },
cancel: function() { /* cancel handler */ },
error: function(error) { /* error handler */ }
}
Странице, на которую вы выполняете перенаправление, необходимо только загрузить сценарий SDK OneDrive:
<html>
<script type="text/javascript" src="https://js.live.net/v7.2/OneDrive.js"></script>
</html>
Примечание. Вы можете указать пользовательский URI перенаправления, только если используете средство выбора файлов в виде всплывающего окна (значение параметра openInNewWindow равно true
).
При использовании встроенного интерфейса всегда применяется URI перенаправления, используемый по умолчанию.