SDK 提供PutFile
方法实现简单上传,适用于一次 HTTP 请求交互即可完成上传的场景,小于 100M 的文件推荐使用本接口上传。完整代码详见 Github 。
PutFile
调用的 US3 API 为 PutFile, 具体参见PutFile API 文档。
参数说明
bucket
: 文件上传后所在的存储空间key
: 文件上传后在存储空间里的名称filepath
: 待上传的文件全路径mimeType
: 文件类型,如果上传File,则文件的MimeType可以使用MimeTypeUtil.getMimeType(File)来获取,MimeTypeUtil可能支持的type类型不全,用户可以按需自行填写
示例
执行该示例前请确保配置文件的正确性
同步
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
File file = new File("your file path"); //filepath
try {
PutObjectResultBean response = UfileClient.object(Constants.OBJECT_AUTHORIZER, config)
.putObject(file, "mimeType")
.nameAs("save as keyName") //key
.toBucket("upload to which bucket") //bucket
/**
* 是否上传校验MD5, Default = true
*/
// .withVerifyMd5(false)
/**
* 指定progress callback的间隔, Default = 每秒回调
*/
// .withProgressConfig(ProgressConfig.callbackWithPercent(10))
/**
* 配置进度监听
*/
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(long bytesWritten, long contentLength) {
}
})
.execute();
} catch (UfileClientException e) {
e.printStackTrace();
} catch (UfileServerException e) {
e.printStackTrace();
}
异步
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
File file = new File("your file path");
UfileClient.object(OBJECT_AUTHORIZER, config)
.putObject(file, "mimeType")
.nameAs("save as keyName")
.toBucket("upload to which bucket")
/**
* 是否上传校验MD5, Default = true
*/
// .withVerifyMd5(false)
/**
*指定progress callback的间隔, Default = 每秒回调
*/
// .withProgressConfig(ProgressConfig.callbackWithPercent(10))
.executeAsync(new UfileCallback<PutObjectResultBean>() {
@Override
public void onProgress(long bytesWritten, long contentLength) {
}
@Override
public void onResponse(PutObjectResultBean response) {
}
@Override
public void onError(Request request, ApiError error, UfileErrorBean response) {
}
});
错误码
HTTP 状态码 | RetCode | ErrMsg | 描述 |
---|---|---|---|
400 | -148653 | bucket not exists | 存储空间不存在 |
400 | -15036 | check md5 failed | MD5校验失败 |
401 | -148643 | no authorization found | 上传凭证错误 |
403 | -148643 | invalid signature | API公私钥错误 |