diff --git a/README.md b/README.md
index 98380a4..017361a 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@
cn.ucloud.ufile
ufile-client-java
- 2.1.2
+ 2.1.3
```
@@ -36,7 +36,7 @@
/*
* your other dependencies
*/
- implementation 'cn.ucloud.ufile:ufile-client-java:2.1.2'
+ implementation 'cn.ucloud.ufile:ufile-client-java:2.1.3'
}
```
diff --git a/ufile-sample-java/pom.xml b/ufile-sample-java/pom.xml
index 98823bb..4d778c7 100644
--- a/ufile-sample-java/pom.xml
+++ b/ufile-sample-java/pom.xml
@@ -26,7 +26,7 @@
cn.ucloud.ufile
ufile-client-java
- 2.1.2
+ 2.1.3
diff --git a/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/Constants.java b/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/Constants.java
index ff1093e..aff8853 100644
--- a/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/Constants.java
+++ b/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/Constants.java
@@ -11,6 +11,7 @@
public class Constants {
static {
// 开启Debug级别日志
+ JLog.SHOW_TEST = true;
JLog.SHOW_DEBUG = true;
}
diff --git a/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/object/PutObjectSample.java b/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/object/PutObjectSample.java
index db1d97e..0a2190e 100644
--- a/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/object/PutObjectSample.java
+++ b/ufile-sample-java/src/main/java/cn/ucloud/ufile/sample/object/PutObjectSample.java
@@ -11,9 +11,11 @@
import cn.ucloud.ufile.http.UfileCallback;
import cn.ucloud.ufile.sample.Constants;
import cn.ucloud.ufile.util.JLog;
+import cn.ucloud.ufile.util.MimeTypeUtil;
import okhttp3.Request;
import java.io.*;
+import java.net.URLEncoder;
/**
* @author: joshua
@@ -22,15 +24,16 @@
*/
public class PutObjectSample {
private static final String TAG = "PutObjectSample";
- private static ObjectConfig config = new ObjectConfig("cn-bj", "ufileos.com");
+ private static ObjectConfig config = new ObjectConfig("cn-sh2", "ufileos.com");
public static void main(String[] args) {
InputStream is = new ByteArrayInputStream(new byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07});
// 如果上传File,则文件的MimeType可以使用MimeTypeUtil.getMimeType(File)来获取,MimeTypeUtil可能支持的type类型不全,用户可以按需自行填写
- String mimeType = "image/jpeg";
- String keyName = "a/b/c.jpg";
- String bucketName = "bucket_name";
- putStream(is, mimeType, keyName, bucketName);
+ File file = new File("");
+ String keyName = "";
+ String mimeType = MimeTypeUtil.getMimeType(keyName);
+ String bucketName = "";
+ putFile(file, mimeType, keyName, bucketName);
}
public static void putFile(File file, String mimeType, String nameAs, String toBucket) {
diff --git a/ufile/pom.xml b/ufile/pom.xml
index 68d27dc..7c4ef65 100644
--- a/ufile/pom.xml
+++ b/ufile/pom.xml
@@ -7,7 +7,7 @@
cn.ucloud.ufile
ufile
pom
- 2.1.2
+ 2.1.3
ufile-core
diff --git a/ufile/ufile-client-java/pom.xml b/ufile/ufile-client-java/pom.xml
index f08b813..76f688c 100644
--- a/ufile/ufile-client-java/pom.xml
+++ b/ufile/ufile-client-java/pom.xml
@@ -6,11 +6,11 @@
ufile
cn.ucloud.ufile
- 2.1.2
+ 2.1.3
ufile-client-java
- 2.1.2
+ 2.1.3
@@ -26,7 +26,7 @@
cn.ucloud.ufile
ufile-core
- 2.1.2
+ 2.1.3
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/AppendObjectApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/AppendObjectApi.java
index 36b5ac8..ebac5a4 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/AppendObjectApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/AppendObjectApi.java
@@ -161,7 +161,7 @@ public AppendObjectApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileIOException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
List> query = new ArrayList<>();
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DeleteObjectApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DeleteObjectApi.java
index 8d2247a..eeb0418 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DeleteObjectApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DeleteObjectApi.java
@@ -5,6 +5,7 @@
import cn.ucloud.ufile.auth.UfileAuthorizationException;
import cn.ucloud.ufile.auth.sign.UfileSignatureException;
import cn.ucloud.ufile.bean.base.BaseResponseBean;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
import cn.ucloud.ufile.http.HttpClient;
@@ -79,7 +80,7 @@ public DeleteObjectApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
String contentType = "application/json; charset=utf-8";
String date = dateFormat.format(new Date(System.currentTimeMillis()));
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DownloadFileApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DownloadFileApi.java
index 5e791ac..d8b0a1f 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DownloadFileApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/DownloadFileApi.java
@@ -246,7 +246,7 @@ public DownloadFileApi setBufferSize(int bufferSize) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
File dir = new File(localPath);
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPrivateUrlApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPrivateUrlApi.java
index 3458daf..3b6a7cc 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPrivateUrlApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPrivateUrlApi.java
@@ -12,6 +12,9 @@
import cn.ucloud.ufile.util.Parameter;
import com.google.gson.JsonElement;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
/**
* API-生成私有下载URL
@@ -82,7 +85,7 @@ public GenerateObjectPrivateUrlApi withAuthOptionalData(JsonElement authOptional
* @throws UfileAuthorizationException 授权异常时抛出
* @throws UfileSignatureException 签名异常时抛出
*/
- public String createUrl() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ public String createUrl() throws UfileClientException {
parameterValidat();
long expiresTime = System.currentTimeMillis() / 1000 + expiresDuration;
@@ -135,7 +138,7 @@ public void run() {
.generateGetUrl(builder.getBaseUrl(), builder.getParams());
if (callback != null)
callback.onSuccess(url);
- } catch (UfileParamException | UfileAuthorizationException | UfileSignatureException e) {
+ } catch (UfileClientException e) {
if (callback != null)
callback.onFailed(e);
}
@@ -143,14 +146,20 @@ public void run() {
}.start();
}
- private String generateFinalHost(String bucketName, String keyName) {
+ private String generateFinalHost(String bucketName, String keyName) throws UfileClientException {
if (host == null || host.length() == 0)
return host;
if (host.startsWith("http"))
return String.format("%s/%s", host, keyName);
- return String.format("http://%s.%s/%s", bucketName, host, keyName);
+ try {
+ bucketName = URLEncoder.encode(bucketName, "UTF-8");
+ keyName = URLEncoder.encode(keyName, "UTF-8");
+ return String.format("http://%s.%s/%s", bucketName, host, keyName);
+ } catch (UnsupportedEncodingException e) {
+ throw new UfileClientException("Occur error during URLEncode bucketName and keyName");
+ }
}
protected void parameterValidat() throws UfileParamException {
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPublicUrlApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPublicUrlApi.java
index d58fe92..ba5a7be 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPublicUrlApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/GenerateObjectPublicUrlApi.java
@@ -1,8 +1,12 @@
package cn.ucloud.ufile.api.object;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
/**
* API-生成公共下载URL
*
@@ -42,19 +46,25 @@ protected GenerateObjectPublicUrlApi(String host, String keyName, String bucketN
* @return 下载URL
* @throws UfileRequiredParamNotFoundException 必要参数未找到时抛出
*/
- public String createUrl() throws UfileParamException {
+ public String createUrl() throws UfileClientException {
parameterValidat();
return generateFinalHost(bucketName, keyName);
}
- private String generateFinalHost(String bucketName, String keyName) {
+ private String generateFinalHost(String bucketName, String keyName) throws UfileClientException {
if (host == null || host.length() == 0)
return host;
if (host.startsWith("http"))
return String.format("%s/%s", host, keyName);
- return String.format("http://%s.%s/%s", bucketName, host, keyName);
+ try {
+ bucketName = URLEncoder.encode(bucketName, "UTF-8");
+ keyName = URLEncoder.encode(keyName, "UTF-8");
+ return String.format("http://%s.%s/%s", bucketName, host, keyName);
+ } catch (UnsupportedEncodingException e) {
+ throw new UfileClientException("Occur error during URLEncode bucketName and keyName");
+ }
}
protected void parameterValidat() throws UfileParamException {
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectListApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectListApi.java
index a54e290..369fd33 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectListApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectListApi.java
@@ -5,6 +5,7 @@
import cn.ucloud.ufile.auth.UfileAuthorizationException;
import cn.ucloud.ufile.auth.sign.UfileSignatureException;
import cn.ucloud.ufile.bean.ObjectListBean;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
import cn.ucloud.ufile.http.HttpClient;
@@ -114,7 +115,7 @@ public ObjectListApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
List> query = new ArrayList<>();
if (prefix != null)
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectProfileApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectProfileApi.java
index 5941a1d..3d09c63 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectProfileApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectProfileApi.java
@@ -84,7 +84,7 @@ public ObjectProfileApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
String contentType = "application/json; charset=utf-8";
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectRestoreApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectRestoreApi.java
index e5784ea..1e67839 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectRestoreApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/ObjectRestoreApi.java
@@ -6,6 +6,7 @@
import cn.ucloud.ufile.auth.sign.UfileSignatureException;
import cn.ucloud.ufile.bean.ObjectRestoreBean;
import cn.ucloud.ufile.bean.UfileErrorBean;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
import cn.ucloud.ufile.exception.UfileServerException;
@@ -82,7 +83,7 @@ public ObjectRestoreApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
String keyName_tmp = keyName; //参数参与签名
@@ -92,7 +93,7 @@ protected void prepareData() throws UfileParamException, UfileAuthorizationExcep
call = new PutJsonRequestBuilder()
.setConnTimeOut(connTimeOut).setReadTimeOut(readTimeOut).setWriteTimeOut(writeTimeOut)
- .baseUrl(generateFinalHost(bucketName, keyName_tmp + "?restore"))
+ .baseUrl(generateFinalHost(bucketName, keyName_tmp) + "?restore")
.addHeader("Accpet", "*/*")
.addHeader("Date", date)
.addHeader("authorization", authorization)
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutFileApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutFileApi.java
index 8d759db..f7519a3 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutFileApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutFileApi.java
@@ -163,7 +163,7 @@ public PutFileApi setBufferSize(int bufferSize) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileFileException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
if (!file.exists())
throw new UfileFileException("File is inexistent!");
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutStreamApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutStreamApi.java
index 9e8a8c4..96eea19 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutStreamApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/PutStreamApi.java
@@ -163,7 +163,7 @@ public PutStreamApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileIOException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
try {
parameterValidat();
@@ -205,6 +205,8 @@ protected void prepareData() throws UfileParamException, UfileIOException, Ufile
call = builder.build(httpClient.getOkHttpClient());
} catch (IOException e) {
throw new UfileIOException(e.getMessage());
+ } catch (UfileClientException e) {
+ throw e;
}
}
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadFileHitApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadFileHitApi.java
index c662a8e..8bea4bf 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadFileHitApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadFileHitApi.java
@@ -8,6 +8,7 @@
import cn.ucloud.ufile.bean.base.BaseResponseBean;
import cn.ucloud.ufile.compat.base64.Base64UrlEncoderCompat;
import cn.ucloud.ufile.compat.base64.DefaultBase64UrlEncoderCompat;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileIOException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
@@ -120,7 +121,7 @@ public UploadFileHitApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException, UfileIOException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
String date = dateFormat.format(new Date(System.currentTimeMillis()));
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadStreamHitApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadStreamHitApi.java
index 766f30e..febba4a 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadStreamHitApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/UploadStreamHitApi.java
@@ -8,6 +8,7 @@
import cn.ucloud.ufile.bean.base.BaseResponseBean;
import cn.ucloud.ufile.compat.base64.Base64UrlEncoderCompat;
import cn.ucloud.ufile.compat.base64.DefaultBase64UrlEncoderCompat;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileIOException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
@@ -124,7 +125,7 @@ public UploadStreamHitApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileIOException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
String date = dateFormat.format(new Date(System.currentTimeMillis()));
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/AbortMultiUploadApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/AbortMultiUploadApi.java
index 8c64781..52fa073 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/AbortMultiUploadApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/AbortMultiUploadApi.java
@@ -6,6 +6,7 @@
import cn.ucloud.ufile.auth.UfileAuthorizationException;
import cn.ucloud.ufile.auth.sign.UfileSignatureException;
import cn.ucloud.ufile.bean.base.BaseResponseBean;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
import cn.ucloud.ufile.http.HttpClient;
@@ -66,7 +67,7 @@ public AbortMultiUploadApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
String contentType = "application/json; charset=utf-8";
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/FinishMultiUploadApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/FinishMultiUploadApi.java
index ebedf67..d62bd55 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/FinishMultiUploadApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/FinishMultiUploadApi.java
@@ -6,6 +6,7 @@
import cn.ucloud.ufile.auth.UfileAuthorizationException;
import cn.ucloud.ufile.auth.sign.UfileSignatureException;
import cn.ucloud.ufile.bean.MultiUploadResponse;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileParamException;
import cn.ucloud.ufile.exception.UfileRequiredParamNotFoundException;
import cn.ucloud.ufile.http.HttpClient;
@@ -100,7 +101,7 @@ public int compare(MultiUploadPartState o1, MultiUploadPartState o2) {
};
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
PostStringRequestBuilder builder = new PostStringRequestBuilder();
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/InitMultiUploadApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/InitMultiUploadApi.java
index b098f64..712b38d 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/InitMultiUploadApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/InitMultiUploadApi.java
@@ -108,7 +108,7 @@ public InitMultiUploadApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
String contentType = mediaType.toString();
diff --git a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/MultiUploadPartApi.java b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/MultiUploadPartApi.java
index a4c4658..10e3196 100644
--- a/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/MultiUploadPartApi.java
+++ b/ufile/ufile-client-java/src/main/java/cn/ucloud/ufile/api/object/multi/MultiUploadPartApi.java
@@ -128,7 +128,7 @@ public MultiUploadPartApi withAuthOptionalData(JsonElement authOptionalData) {
}
@Override
- protected void prepareData() throws UfileParamException, UfileAuthorizationException, UfileSignatureException {
+ protected void prepareData() throws UfileClientException {
parameterValidat();
List> query = new ArrayList<>();
query.add(new Parameter<>("uploadId", info.getUploadId()));
diff --git a/ufile/ufile-core/pom.xml b/ufile/ufile-core/pom.xml
index 1b44dbc..798965d 100644
--- a/ufile/ufile-core/pom.xml
+++ b/ufile/ufile-core/pom.xml
@@ -6,11 +6,11 @@
ufile
cn.ucloud.ufile
- 2.1.2
+ 2.1.3
ufile-core
- 2.1.2
+ 2.1.3
diff --git a/ufile/ufile-core/src/main/java/cn/ucloud/ufile/UfileConstants.java b/ufile/ufile-core/src/main/java/cn/ucloud/ufile/UfileConstants.java
index 4eb5fba..fd6902d 100644
--- a/ufile/ufile-core/src/main/java/cn/ucloud/ufile/UfileConstants.java
+++ b/ufile/ufile-core/src/main/java/cn/ucloud/ufile/UfileConstants.java
@@ -6,7 +6,7 @@
* @date: 2018/11/22 15:00
*/
public class UfileConstants {
- public static final String SDK_VERSION = "2.1.2";
+ public static final String SDK_VERSION = "2.1.3";
/**
* 默认分片大小(4MB)
*/
diff --git a/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/UfileApi.java b/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/UfileApi.java
index f9b67c0..c9c2083 100644
--- a/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/UfileApi.java
+++ b/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/UfileApi.java
@@ -171,7 +171,8 @@ public T execute() throws UfileClientException, UfileServerException {
return parseHttpResponse(response);
} catch (IOException e) {
- throw new UfileIOException("Occur IOException while sending http request");
+ throw new UfileIOException("Occur IOException while sending http request, " +
+ "you can check the file which you want to upload/download is exist or changed");
}
}
diff --git a/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/object/UfileObjectApi.java b/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/object/UfileObjectApi.java
index b0fe213..d41283b 100644
--- a/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/object/UfileObjectApi.java
+++ b/ufile/ufile-core/src/main/java/cn/ucloud/ufile/api/object/UfileObjectApi.java
@@ -2,8 +2,12 @@
import cn.ucloud.ufile.auth.ObjectAuthorizer;
import cn.ucloud.ufile.api.UfileApi;
+import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.http.HttpClient;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
/**
* Ufile 对象存储相关API基类
*
@@ -33,13 +37,19 @@ public UfileObjectApi(ObjectAuthorizer authorizer, String host, HttpClient httpC
* @param keyName 对象名称
* @return API域名
*/
- protected String generateFinalHost(String bucketName, String keyName) {
+ protected String generateFinalHost(String bucketName, String keyName) throws UfileClientException {
if (host == null || host.length() == 0)
return host;
if (host.startsWith("http"))
return String.format("%s/%s", host, keyName);
- return String.format("http://%s.%s/%s", bucketName, host, keyName);
+ try {
+ bucketName = URLEncoder.encode(bucketName, "UTF-8");
+ keyName = URLEncoder.encode(keyName, "UTF-8");
+ return String.format("http://%s.%s/%s", bucketName, host, keyName);
+ } catch (UnsupportedEncodingException e) {
+ throw new UfileClientException("Occur error during URLEncode bucketName and keyName");
+ }
}
}