Retrofit上传文件到oss文件存储
2023-12-14 19:03:34
@Override
public Observable<BaseResp<UploadFileInfoResp>> getUploadFileUrl(UploadFileInfoReq uploadFileInfoReq) {
return apiService.getUploadFileUrl(uploadFileInfoReq);
}
@Override
public Observable<ResponseBody> uploadFileDirect(String url, Map<String, String> headers, RequestBody requestBody) {
return apiService.uploadFileDirect(url, headers, requestBody);
}
public class UploadFileInfoReq {
public String fileName;
public long fileSize;
public boolean randomFileName;
public String systemCode;
}
public class UploadFileInfoResp {
public long fileId;
public String fileUrl;
public String uploadUrl;
public Map<String, String> headers;
}
public void getUploadFileUrl(File file, UploadFileInfoReq uploadFileInfoReq) {
dataRepository.getUploadFileUrl(uploadFileInfoReq)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(this)
.subscribe(new DisposableObserver<BaseResp<UploadFileInfoResp>>() {
@Override
public void onNext(@NonNull BaseResp<UploadFileInfoResp> response) {
if (response.code == BaseConstants.API_HANDLE_SUCCESS) {
uploadFileDirect(file, response.data);
}
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
public void uploadFileDirect(File file, UploadFileInfoResp uploadFileInfoResp) {
RequestBody requestBody = RequestBody.create(file, MediaType.parse("image/png"));
dataRepository.uploadFileDirect(uploadFileInfoResp.uploadUrl, uploadFileInfoResp.headers, requestBody)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(this)
.subscribe(new DisposableObserver<ResponseBody>() {
@Override
public void onNext(@NonNull ResponseBody response) {
Log.i("xxx", "------ done-");
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
topBarView.setOnSettingsClickListener(new TopBarView.OnSettingsItemClickListener() {
@Override
public void onClick(View view) {
File file = new File(getExternalCacheDir().getAbsolutePath() + "/xxx.png");
showToast("size=" + file.length());
UploadFileInfoReq uploadFileInfoReq = new UploadFileInfoReq("TestFile", file.length(), "Test_File_001");
viewModel.getUploadFileUrl(file, uploadFileInfoReq);
}
});
文章来源:https://blog.csdn.net/hejinyin/article/details/135001456
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!