融合接口
SDK提供封装好的融合接口,方便用户实现分片上传的功能。
接口定义:
public TransferObserver upload(String bucket, String key, File file)
public TransferObserver upload(String bucket, String key, File file, CannedAccessControlList cannedAcl)
public TransferObserver upload(String bucket, String key, File file, ObjectMetadata metadata)
public TransferObserver upload(String bucket, String key, File file, ObjectMetadata metadata, CannedAccessControlList cannedAcl)
public TransferObserver upload(String bucket, String key, File file, ObjectMetadata metadata, CannedAccessControlList cannedAcl, TransferListener listener)
参数:
参数名 | 类型 | 说明 |
---|---|---|
bucketName | String | bucket名 |
key | String | 要上传的对象名称 |
file | FILE | 上传的文件对象 |
metadata | ObjectMetadata | 可选参数,元数据,可以设置ContentType和自定义元数据 |
cannedAcl | CannedAccessControlList | 文件操作权限(Private|PublicRead) |
listener | TransferListener | 上传文件回调 |
代码示例:
private void beginUpload(File file) {
TransferUtility transferUtility = TransferUtility.builder()
.context(context)
.s3Client(S3Client)
.build();
TransferObserver observer = transferUtility.upload(
bucketName,
key,
file
);
}
Content-Type用于标识文件的资源类型,比如image/png
, image/jpg
是图片类型,video/mpeg
, video/mp4
是视频类型,text/plain
, text/html
是文本类型, 浏览器针对不同的Content-Type会有不同的操作,比如图片类型可以预览,视频类型可以播放,文本类型可以直接打开。application/octet-stream
类型会直接打开下载窗口。
在android sdk中,如果用户没有设置Content-Type,会根据对象的key后缀扩展名自动生成Content-Type。