开发者社区 问答 正文

存储管理里的文件传输功能提及的OSS功能是什么?

钉钉开放文档【服务端API - 文档/文件 - 存储管理 - 文件传输 - 提交文件】这个文档里,提及的第二步上传到OSS是什么操作?难道是阿里云的OSS?但是那个东西我们用不到啊!

官方文档地址:
https://open.dingtalk.com/document/orgapp/submittal-file

展开
收起
游客4mk33qdp4pbjq 2024-01-23 14:19:20 55 分享 版权
阿里云 AI 助理回答

在钉钉开放文档中提到的“上传到OSS”确实是指阿里云的对象存储服务(OSS)。虽然您提到可能用不到OSS,但这是钉钉文件传输流程中的一个关键步骤。以下是关于该操作的详细说明:


1. 什么是OSS?

阿里云对象存储(OSS)是一种高可用、高可靠、低成本的云端存储服务,适用于存储海量文件。在钉钉的文件传输流程中,OSS被用作文件的临时存储介质,以便后续处理或分发。


2. 为什么需要上传到OSS?

在钉钉的服务端API中,文件传输通常分为以下几步: 1. 获取上传凭证:通过调用钉钉接口获取上传所需的临时授权信息(如accessKeyIdaccessKeySecret等)。 2. 上传文件到OSS:使用获取的凭证将文件上传到指定的OSS路径。 3. 提交文件信息:将文件的OSS路径或其他元信息提交给钉钉服务器,完成文件的最终存储或分发。

这一步骤的核心目的是利用OSS的高效上传能力和分布式存储特性,确保文件能够快速、安全地传输到云端。


3. 如何上传文件到OSS?

根据知识库资料,上传文件到OSS有多种方式,您可以选择适合的方式完成操作:

3.1 断点续传上传

  • 适用场景:适用于大文件上传(不超过48.8 TB),尤其是在网络环境不稳定的情况下。
  • 实现方式:通过调用OSS SDK提供的方法(如Java SDK的uploadFile),在客户端本地记录上传进度,并在网络中断后从上次停止的地方继续上传。

3.2 表单上传

  • 适用场景:适用于HTML网页中用户直接上传文件,文件大小不超过5 GB。
  • 实现方式:通过发起HTTP POST请求上传文件到OSS。可以借助服务端生成的PostPolicy限制上传文件的大小、类型等。

3.3 客户端直传

  • 推荐方式:相对于服务端代理上传,客户端直传避免了业务服务器中转文件,提高了上传速度并节省了服务器资源。
  • 实现方式:通过前端直接与OSS交互完成文件上传。

4. 是否必须使用OSS?

在钉钉的文件传输流程中,OSS是默认的存储中间件。如果您不希望使用OSS,可以考虑以下替代方案: 1. 自建存储服务:搭建自己的文件存储服务,但这需要额外的开发和运维成本。 2. 第三方存储服务:使用其他云存储服务提供商,但需要确保其与钉钉API的兼容性。

需要注意的是,钉钉官方推荐使用OSS,因为其与钉钉API深度集成,能够简化开发流程并提高文件传输效率。


5. 上传到OSS的具体操作

以下是上传文件到OSS的基本步骤(以表单上传为例):

5.1 获取上传凭证

调用钉钉接口获取上传所需的临时授权信息,包括: - accessKeyId - accessKeySecret - securityToken - expiration

5.2 构造上传策略(Policy)

上传策略用于定义上传文件的限制条件,例如: - 文件大小范围:content-length-range - 文件类型:eqin - 文件路径:starts-with

示例代码片段:

conditions = append(conditions, []interface{}{"eq", "$key", key})
conditions = append(conditions, []interface{}{"in", "$content-type", mediaConditions})
conditions = append(conditions, []interface{}{"content-length-range", lowbound, file.FileSizeInByte + 10})

5.3 发起上传请求

通过HTTP POST请求将文件上传到OSS,请求中需包含以下信息: - 签名后的Policy - 文件内容 - 其他元数据(如Content-Type


6. 重要提醒

  • 文件大小限制:表单上传的文件大小不得超过5 GB,断点续传支持最大48.8 TB。
  • 安全性:上传时建议使用HTTPS协议,确保数据传输的安全性。
  • 权限管理:确保上传凭证的权限最小化,避免泄露敏感信息。

7. 总结

虽然您提到可能用不到OSS,但在钉钉的文件传输流程中,OSS是一个不可或缺的环节。它不仅提供了高效的文件上传能力,还与钉钉API无缝集成。如果您确实无法使用OSS,可以考虑自建存储服务或使用其他云存储方案,但这可能会增加开发复杂度。

如有进一步疑问,请随时联系!

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答