上传文件到OSS的多种方式
您可以将任何类型的文件上传到OSS的Bucket中,包括图片、文档、视频等。当您将文件上传到OSS时,文件将作为OSS Object进行存储。Object包含文件数据本身和描述该对象的元数据。在一个Bucket中,您可以上传大量的Object。
上传方式
OSS提供以下文件上传方式:
简单上传:适用于上传小文件,文件大小不超过5 GB,操作简单,通过调用OSS提供的PutObject接口一次性上传整个文件,无需特殊配置。
分片上传:适用于上传大文件,文件大小不超过48.8 TB,通过调用OSS提供的多个接口,包括InitiateMultipartUpload、UploadPart、CompleteMultipartUpload,将文件分割成多个分片并行上传,然后在上传完成后合并最终上传整个文件。如果因为网络环境不稳定等情况导致上传中断,客户端需要手动记录哪些分片上传失败以进行重传。
追加上传:适用于上传需要持续添加数据的文件,例如视频流,文件大小不超过5 GB,通过调用OSS提供AppendObject接口上传文件,并生成Appendable类型的Object。Appendable类型Object后面允许直接追加内容,且每次追加上传的数据都能够即时可读。非Appendable类型的Object不支持追加上传。
断点续传上传:适用于在网络环境不稳定的情况下上传大文件,文件大小不超过48.8 TB,通过调用OSS SDK基于分片上传封装的方法,例如Java SDK的
uploadFile
,实现在客户端本地自动记录上传进度,然后在中断后从上次停止的地方继续上传。表单上传:适用于让用户在HTML网页中上传Object,文件大小不超过5 GB,通过发起HTTP POST请求上传文件到OSS。您可以借助服务端生成的PostPolicy限制客户端上传的文件,例如限制文件大小、文件类型。
相关文档
如果您希望在上传文件时监控并显示数据传输的进度,您可以利用OSS SDK提供的进度监听功能实现一个进度条来反馈实时的上传状态。更多信息,请参见上传进度条。
如果需要控制上传的文件的缓存、下载、数据处理等行为,您可以在上传时携带Object Meta信息,例如Content-Type等标准HTTP头。更多信息,请参见设置文件元数据。
在文件上传到OSS后,您可以通过上传回调向指定的应用服务器发起回调请求。更多信息,请参见上传回调。
推荐使用客户端直传的方式将文件上传到OSS。相对于服务端代理上传,客户端直传避免了业务服务器中转文件,提高了上传速度,节省了服务器资源。更多信息,请参见客户端直传。
如果您希望对上传的图片进行压缩、添加自定义样式等操作,请参见图片处理操作方式。
如果上传图片后需要获取图片大小信息,您可以使用
?x-oss-process=image/info
返回图片的基本信息。更多信息,请参见获取信息。如果您希望对上传的图片或者视频等进行文字识别、字幕提取、视频转码、生成视频封面等处理,请参见媒体处理。
如果您希望对上传的PDF、PPT、Word等格式的文档进行在线预览或在线编辑,请参见WebOffice预览和协作编辑。
文件上传完成后,您可以在URL中加入签名信息,以便将该URL转给第三方实现授权访问。更多信息,请参见在URL中包含签名。
通过文件URL访问文件时,是预览或者下载的行为取决于域名类型以及Bucket的创建时间。更多信息,请参见通过文件URL访问文件无法预览而是以附件形式下载?。