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"); + } } }