钉钉开放文档【服务端API - 文档/文件 - 存储管理 - 文件传输 - 提交文件】这个文档里,提及的第二步上传到OSS是什么操作?难道是阿里云的OSS?但是那个东西我们用不到啊!
官方文档地址:
https://open.dingtalk.com/document/orgapp/submittal-file
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在钉钉开放文档中提到的“上传到OSS”确实是指阿里云的对象存储服务(OSS)。虽然您提到可能用不到OSS,但这是钉钉文件传输流程中的一个关键步骤。以下是关于该操作的详细说明:
阿里云对象存储(OSS)是一种高可用、高可靠、低成本的云端存储服务,适用于存储海量文件。在钉钉的文件传输流程中,OSS被用作文件的临时存储介质,以便后续处理或分发。
在钉钉的服务端API中,文件传输通常分为以下几步: 1. 获取上传凭证:通过调用钉钉接口获取上传所需的临时授权信息(如accessKeyId
、accessKeySecret
等)。 2. 上传文件到OSS:使用获取的凭证将文件上传到指定的OSS路径。 3. 提交文件信息:将文件的OSS路径或其他元信息提交给钉钉服务器,完成文件的最终存储或分发。
这一步骤的核心目的是利用OSS的高效上传能力和分布式存储特性,确保文件能够快速、安全地传输到云端。
根据知识库资料,上传文件到OSS有多种方式,您可以选择适合的方式完成操作:
uploadFile
),在客户端本地记录上传进度,并在网络中断后从上次停止的地方继续上传。PostPolicy
限制上传文件的大小、类型等。在钉钉的文件传输流程中,OSS是默认的存储中间件。如果您不希望使用OSS,可以考虑以下替代方案: 1. 自建存储服务:搭建自己的文件存储服务,但这需要额外的开发和运维成本。 2. 第三方存储服务:使用其他云存储服务提供商,但需要确保其与钉钉API的兼容性。
需要注意的是,钉钉官方推荐使用OSS,因为其与钉钉API深度集成,能够简化开发流程并提高文件传输效率。
以下是上传文件到OSS的基本步骤(以表单上传为例):
调用钉钉接口获取上传所需的临时授权信息,包括: - accessKeyId
- accessKeySecret
- securityToken
- expiration
上传策略用于定义上传文件的限制条件,例如: - 文件大小范围:content-length-range
- 文件类型:eq
或in
- 文件路径: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})
通过HTTP POST请求将文件上传到OSS,请求中需包含以下信息: - 签名后的Policy - 文件内容 - 其他元数据(如Content-Type
)
虽然您提到可能用不到OSS,但在钉钉的文件传输流程中,OSS是一个不可或缺的环节。它不仅提供了高效的文件上传能力,还与钉钉API无缝集成。如果您确实无法使用OSS,可以考虑自建存储服务或使用其他云存储方案,但这可能会增加开发复杂度。
如有进一步疑问,请随时联系!