Giter Club home page Giter Club logo

qingstor-sdk-java's People

Contributors

chengww5217 avatar dependabot[bot] avatar fivesmallq avatar frostyplanet avatar karoosnip avatar owarai avatar wangmq0719 avatar xuanwo avatar yu31 avatar zhaohuxing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

qingstor-sdk-java's Issues

分段上传的问题

分段上传问题

1.uploadMultipartinput.setContentLength(size)必须调用,否则会出现错误

Exception in thread "main" java.lang.NumberFormatException: For input string: "null"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at com.qingstor.sdk.request.QSOkHttpRequestClient.buildStorMultiUpload(QSOkHttpRequestClient.java:349)
	at com.qingstor.sdk.request.QSRequest.buildRequest(QSRequest.java:157)
	at com.qingstor.sdk.request.QSRequest.sendApiRequest(QSRequest.java:100)
	at com.qingstor.sdk.service.Bucket.uploadMultipart(Bucket.java:3264)

且size的值可以任意定义(上限未测试,下限4M貌似没用):

  • 当size大于等于file.length()时,会出现错误(这里等于时不应该出现错误,文件小于4M时未出现错误)
Dec 07, 2016 2:52:43 PM com.qingstor.sdk.request.QSOkHttpRequestClient requestAction
SEVERE: unexpected end of stream
com.qingstor.sdk.exception.QSException: null; Action : null; Error Code: 0; Error Message: null)
	at com.qingstor.sdk.request.QSOkHttpRequestClient.requestAction(QSOkHttpRequestClient.java:159)
	at com.qingstor.sdk.request.QSRequest.sendApiRequest(QSRequest.java:102)
	at com.qingstor.sdk.service.Bucket.uploadMultipart(Bucket.java:3264)
	at Main.main(Main.java:404)
  • 当size大于等于0小于file.length()-1时,通过List Multipart接口取得的分段信息中所得size于上传时设置的size相同,但是通过Get Bucket Statisticsbucket得到的bucket的空间占用为(size-23473)。
  • 当size为-1时,通过List Multipart接口取得的分段信息中所得size为0。
  • 当size小于-1时会得到`400:The request is invalid.
  • 多个分段存在时通过Get Bucket Statisticsbucket得到的bucket的空间占用比所有分段size和小23473。

上传图片测试结果:图片内容未丢失。通过Head Object得到的Object的size正常。通过Get Bucket Statisticsbucket得到的bucket的空间占用比正常size小23473(byte)。
`

关于分段上传的一些疑惑:未测试实际上传的内容,但是对与分段上传的机制存在疑惑(忽略上诉问题)。分段上传允许设置inputfile和inputstream,应该是把分段过程交给sdk处理,但是仅要求设置contentlength,难以实现分段效果(缺少一个contentoffset),这还要开发者自己来进行分段。

A possible Code Error

The first line's code of the todouble function in java-sdk-utils-qsjsonutils which is a if statement may has a error.The second condition may be labelDatas.Length <= i rather than labelDatas.Length >= i.Because it's for list's overflow.

Bucket API "PUT Bucket External Mirror" has something wrong!

Bucket API —— PUT Bucket External Mirror 遇到了问题

下面是测试代码与输出

try {
	PutBucketExternalMirrorInput input = new PutBucketExternalMirrorInput();
	input.setSourceSite("http://example.com:80/image/");
	PutBucketExternalMirrorOutput output = bucket.putExternalMirror(input);
	System.out.println(output.getStatueCode()+":"+output.getMessage());
	bucket.putExternalMirrorAsync(null,  new ResponseCallBack<Bucket.PutBucketExternalMirrorOutput>() {

		@Override
		public void onAPIResponse(PutBucketExternalMirrorOutput output) throws QSException {
			// TODO Auto-generated method stub
			System.out.println(output.getStatueCode()+":"+output.getMessage());
		}
	});
} catch (QSException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}
400:The request body format is invalid.
10000:SourceSite is required in PutBucketExternalMirrorInput 

不知道是我代码写的不对还是 SDK 有问题

如何上传一个指定URL的文件(比如图片)到Bucket

如题

EvnContext evn = new EvnContext(ACCESS_KEY_ID, SECRET_ACCESS_KEY);
QingStor storService = new QingStor(evn);

Bucket.PutObjectInput input = new Bucket.PutObjectInput();
URLConnection connection =new URL(IMAGE_URL).openConnection();
InputStream inputStream = connection.getInputStream();

int len = connection.getContentLength();

input.setBodyInputStream(inputStream);
input.setContentType("image/jpeg");
input.setContentLength(len);
storService.getBucket(BUCKET_NAME).putObject(IMAGE_NAME, input);

小图片上传成功,大于几十k的图片都报错...
SEVERE: unexpected end of stream com.qingstor.sdk.exception.QSException: Error Code: 0; Error Message: unexpected end of stream at com.qingstor.sdk.request.QSOkHttpRequestClient.requestAction(QSOkHttpRequestClient.java:160) at com.qingstor.sdk.request.QSRequest.sendApiRequest(QSRequest.java:109) at com.qingstor.sdk.service.Bucket.putObject(Bucket.java:3330) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

JSONException problem

Use QingStor to appear JSONException problem and NullPointerException,but The corresponding status value is 404.
Uploading as5.png…

Usage文档中的几个问题

Configuration Guide

问题:“Code Snippet"中的"Create API server"中moreEvn.setHost("privatestor.com")
使用该配置会导致调用API时出现错误:SEVERE: privatestor.com: unknown error

修改意见:修改参数
moreEvn.setHost("qingstor.com")


问题:"Code Snippet"中的"Create API server"中moreEvn.setPort(443) 参数类型错误

修改意见:修改参数为String类型
moreEvn.setPort("443")

QingStor Service Usage Guide

问题:文档中"Code Snippet"中的"Initialize the QingStor service with a configuration"中QingStor storService = new QingStor(evn, bucketName); 没有对应的构造函数。

修改意见:使用正确的构造函数
QingStor storService = new QingStor(evn);

String zoneName = "pek3a";
QingStor storService = new QingStor(evn, zoneName);

异步问题

如果使用了一个异步接口,即时回调已经被调用,线程(程序)也不会停止。

建议当回调被调用后关闭停止连接池线程。(或者给用户提示:如果使用了异步API需要手动确认终止程序。)

API——Get Bucket ACL、Put Object、Delete Object的问题

下面是具体的问题:

  1. Get Bucket ACL 得到的结果中 ownername默认ACLGranteename 都是 ""
  2. Put Object input.setContentLength(size)好像没有什么用处。当objectName设为""时返回409:The bucket you are trying to create already exists.这个接口不应该有这样的功能吧。
  3. Delete Object 当objectName设为""时返回409:The bucket is not empty.这个接口不应该有这样的功能吧。当object不存在时返回与删除成功同样的结果,无法判断。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.