项目
版本

Uppy OneDrive 插件

@uppy/onedrive 插件允许用户从他们的 OneDrive 账户导入文件。

何时使用此功能?

当你想让用户从他们的 OneDrive 账户导入文件时。

OneDrive 插件正常工作需要一个 Companion 实例。Companion 负责与 OneDrive 进行身份验证、下载文件,并将其上传到目标位置。这节省了用户的带宽,特别是当他们在使用移动网络时更为有用。

你可以自托管 Companion 或者通过任何 Transloadit 计划 获取托管版本。

  • npm

    npm install @uppy/onedrive
    
  • yarn

    yarn add @uppy/onedrive
    
  • CDN

    <!-- 1. Add CSS to `<head>` -->
    <link href="https://releases.transloadit.com/uppy/v3.27.3/uppy.min.css" rel="stylesheet">
    
    <!-- 2. Initialize -->
    <div id="uppy"></div>
    
    <script type="module">
        import { Uppy, OneDrive } from "https://releases.transloadit.com/uppy/v3.27.3/uppy.min.mjs"
        const uppy = new Uppy()
        uppy.use(OneDrive, {
        // Options
        })
    </script>
    

使用方法

使用 OneDrive 需要在 Uppy 和 Companion 中进行设置。

在 Uppy 中使用

import Uppy from "@uppy/core";
import Dashboard from "@uppy/dashboard";
import OneDrive from "@uppy/onedrive";

import "@uppy/core/dist/style.min.css";
import "@uppy/dashboard/dist/style.min.css";

new Uppy()
  .use(Dashboard, { inline: true, target: "#dashboard" })
  .use(OneDrive, { companionUrl: "https://your-companion.com" });

在 Companion 中使用

要获取 API 密钥,请前往 Microsoft 的 Azure 平台

如果你还没有项目,为你的应用创建一个。

应用页面有一个 "Redirect URIs" 字段,在这里添加:

https://$YOUR_COMPANION_HOST_NAME/onedrive/redirect

如果你使用的是 Transloadit 托管的 Companion:

https://api2.transloadit.com/companion/onedrive/redirect

转到 "Manifest" 标签页,找到 "signInAudience" 键。将其更改为 "signInAudience": "AzureADandPersonalMicrosoftAccount",然后点击 "保存"。

转到 "概述" 标签页。复制 Application (client) ID 字段 - 这将是你的 OAuth 客户端 ID。

转到 "证书 & 密钥" 标签页,点击 "+ 新建客户端密钥"。复制 Value 字段 - 这将是你的 OAuth 客户端密钥。

在 Companion 中配置 OneDrive 密钥和密钥。对于独立的 Companion 服务器,指定环境变量:

export COMPANION_ONEDRIVE_KEY="OneDrive 应用程序 ID"
export COMPANION_ONEDRIVE_SECRET="OneDrive OAuth 客户端密钥值"

当使用 Companion Node.js API 时,配置这些选项:

companion.app({
  providerOptions: {
    onedrive: {
      key: "OneDrive 应用程序 ID",
      secret: "OneDrive OAuth 客户端密钥值",
    },
  },
});

API

选项

id

此插件的唯一标识符( string,默认:'OneDrive' )。

title

在 UI 中显示的标题/名称,如 Dashboard 标签( string,默认:'OneDrive' )。

target

放置拖放区域的目标 DOM 元素、CSS 选择器或插件( stringElementFunction,或 UIPlugin,默认:Dashboard )。

companionUrl

指向 Companion 实例的 URL( string,默认:null )。

companionHeaders

每次向 Companion 发送请求时应随附的自定义头( Object,默认:{} )。

companionAllowedHosts

从 OAuth 响应应被接受的有效和授权的 URL( stringRegExpArray,默认:companionUrl )。

此值可以是 stringRegExp 模式或两者的 Array 。当你在多个主机上运行 Companion 时,这非常有用。否则,默认值应该足够好。

companionCookiesRule

此选项与 RequestCredentials 值 相对应( string,默认:'same-origin' )。

这告诉插件是否应向 Companion 发送 cookies。

locale

export default {
  strings: {
    pluginNameOneDrive: "OneDrive",
  },
};
在本文档中