以编程方式将文件上传到 Box.com 的最佳方式

2024-01-13

我已经阅读了整个 Box.com 开发人员 api 指南,并花了几个小时在网上研究这个特定问题,但我似乎找不到明确的答案,而且如果我要失败,我也不想开始创建解决方案错误的道路。我们有一个生产环境,一旦我们完成文件的处理,我们的生产软件系统就会将它们压缩并保存到本地服务器目录中以供存档之用。该本地路径无法更改。我的问题是如何以编程方式将这些文件上传到我们的 Box.com 帐户,以便我们可以将这些文件存档在云上?我读过的有关此内容的所有内容都涉及使用 OAuth2 来访问我们的帐户,我理解这一点,但它也需要用户登录。由于这是一个内部流程,不会向外部用户公开,因此我希望能够实现自动化,否则对我们来说是不可行的。我在创建每次保存新文件时触发的程序时没有任何问题,我所需要的只是简化 Box.com 访问。


我刚刚回答了完全相同的一组问题,发现目前您无法绕过 OAuth 流程。然而,他们的刷新令牌现在的有效期为 60 天,这应该会使任何自定义设置更加坚固。不过,我仍然认为,必须使用 OAuth 进行企业设置是一个非常脆弱的实现 - 出于您所说的确切原因:某些中间件应用程序必须依赖 OAuth 身份验证过程是不可行的。

我的解决方案:

这就是我的想法。以下是各种 Box API 文档和视频中概述的相同步骤:

  1. 使用这个网址 (go to https://developers.box.com/oauth/ https://developers.box.com/oauth/找到原来的)
  2. 将该 URL 粘贴到浏览器中并开始
  3. 验证并授予访问权限
  4. 获取生成的 URL:并记下“code=”值。
  5. open POSTMAN or Fiddler (or some other HTTP sniffer) and enter the following:
    • URL: https://www.box.com/api/oauth2/token https://www.box.com/api/oauth2/token
    • create URL encoded post data:
      • grant_type=授权码
      • client_id=[您的客户 ID]
      • client_secret=[您的客户秘密]
      • code=
  6. 发送请求并检索生成的 JSON 数据:
    
    
    {
    "access_token": "[YOUR SHINY NEW ACCESS TOKEN]",
    "expires_in": 4255,
    "restricted_to": [],
    "refresh_token": "[YOUR HELPFUL REFRESH TOKEN]",
    "token_type": "bearer"
    }
      

在我的应用程序中,我以一种格式保存身份验证令牌和刷新令牌,如果出现问题,我可以轻松地替换它们。然后,我每次调用 API 时都会检查我的身份验证。如果我收到授权异常,我会以编程方式刷新我的令牌,您可以can做!使用 BoxApi.V2 .NET SDK 会发生这样的情况:

var authenticator = new TokenProvider(_clientId, _clientSecret);
// calling the 'RefreshAccessToken' method in the SDK
var newAuthToken = authenticator.RefreshAccessToken([YOUR EXISTING REFRESH TOKEN]);
// write the new token back to my data store.
Save(newAuthToken);

希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式将文件上传到 Box.com 的最佳方式 的相关文章

随机推荐