GithubHelp home page GithubHelp logo

aliyun-oss-android-sdk's People

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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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  avatar

aliyun-oss-android-sdk's Issues

在Android中上传图片报错”java.net.ProtocolException: unexpected end of stream“

我在安卓中使用了OSS服务,我是先将android的bitmap格式转化为byte格式再进行上传,但是发生了错误。
我的调用代码如下所示:

// OSSClient只初始化了一次
credentialProvider = new OSSPlainTextAKSKCredentialProvider(ACCESS_KEY_ID, ACCESS_KEY_SECRET);
client = new OSSClient(getApplicationContext(), ENDPOINT, credentialProvider);

try {
                String object_key = FOLDER + "camera_img.jpg";
                PutObjectRequest put = new PutObjectRequest(BUCKET_NAME, object_key, byteArray);
                System.out.println("PutObjectRequest这里出现了问题????");

                PutObjectResult putResult = client.putObject(put);
                Log.d("PutObject", "UploadSuccess");
                Log.d("ETag", putResult.getETag());
                Log.d("RequestId", putResult.getRequestId());

                // ###########################################
                // 保存上传图片的文件路径
                img_url = "https://tf-img-classifier.oss-cn-shanghai.aliyuncs.com/camera_img.jpg";
                System.out.println("---------------->成功!");

                flag = 1;
            } catch (ClientException e) {
                // 本地异常如网络异常等
                e.printStackTrace();
                System.out.println("---------------->失败!");
            } catch (ServiceException e) {
                // 服务异常
                Log.e("RequestId", e.getRequestId());
                Log.e("ErrorCode", e.getErrorCode());
                Log.e("HostId", e.getHostId());
                Log.e("RawMessage", e.getRawMessage());
                System.out.println("---------------->异常!");
            }
            if(flag == 1){
                // ##################################################
                // 4.1号添加
                // Mqtt发布到broker中去
                //mqttHelper.publishMessage(img_url);
                try {
                    MqttClient sampleClient = new MqttClient(mqttHelper.serverUri, mqttHelper.clientId, null);
                    //sampleClient.setCallback(new MyMqttCallback());

                    // 创建连接选择
                    MqttConnectOptions connOpts = getMqttConnectOptions(mqttHelper.username,mqttHelper.password);
                    System.out.println("Connecting to broker: "+mqttHelper.serverUri);

                    sampleClient.connect(connOpts);
                    System.out.println("Connected");

                    //sampleClient.subscribe(mqttHelper.publishTopic);

                    //在另一个线程中发送消息
                    Thread thread = new Thread(() -> {
                        try {
                            publishMsg(mqttHelper.publishTopic, img_url, sampleClient);
                        } catch (MqttException e) {
                            e.printStackTrace();
                        }
                    });
                    thread.start();

                    thread.join();
                    //断开服务连接
                    sampleClient.disconnect();
                    System.out.println("Disconnected");
                } catch (MqttException me) {
                    System.out.println("reason "+me.getReasonCode());
                    System.out.println("msg "+me.getMessage());
                    System.out.println("loc "+me.getLocalizedMessage());
                    System.out.println("cause "+me.getCause());
                    System.out.println("excep "+me);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

报错信息如下:

W/oss-android-api: type=1400 audit(0.0:426): avc: denied { write } for name="perfd" dev="mmcblk2p18" ino=1318 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0
W/oss-android-api: type=1400 audit(0.0:427): avc: denied { write } for name="perfd" dev="mmcblk2p18" ino=1318 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0
W/System.err: java.net.ProtocolException: unexpected end of stream
W/System.err:     at okhttp3.internal.http.Http1xStream$FixedLengthSink.close(Http1xStream.java:294)
W/System.err:     at okio.RealBufferedSink.close(RealBufferedSink.java:236)
W/System.err:     at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:48)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at com.android.tools.profiler.agent.okhttp.OkHttp3Interceptor.intercept(OkHttp3Interceptor.java:52)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:109)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:124)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:170)
W/System.err:     at okhttp3.RealCall.execute(RealCall.java:60)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:174)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:44)
W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
W/System.err:     at java.lang.Thread.run(Thread.java:764)
W/System.err: java.net.ProtocolException: unexpected end of stream
W/System.err:     at okhttp3.internal.http.Http1xStream$FixedLengthSink.close(Http1xStream.java:294)
W/System.err:     at okio.RealBufferedSink.close(RealBufferedSink.java:236)
W/System.err:     at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:48)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at com.android.tools.profiler.agent.okhttp.OkHttp3Interceptor.intercept(OkHttp3Interceptor.java:52)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:109)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:124)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:170)
W/System.err:     at okhttp3.RealCall.execute(RealCall.java:60)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:174)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:243)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:44)
W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
W/System.err:     at java.lang.Thread.run(Thread.java:764)
W/System.err: com.alibaba.sdk.android.oss.ClientException: unexpected end of stream
W/System.err: [ErrorMessage]: unexpected end of stream
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:197)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:243)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:243)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:44)
W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
W/System.err:     at java.lang.Thread.run(Thread.java:764)
W/System.err: Caused by: java.net.ProtocolException: unexpected end of stream
W/System.err:     at okhttp3.internal.http.Http1xStream$FixedLengthSink.close(Http1xStream.java:294)
W/System.err:     at okio.RealBufferedSink.close(RealBufferedSink.java:236)
W/System.err:     at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:48)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at com.android.tools.profiler.agent.okhttp.OkHttp3Interceptor.intercept(OkHttp3Interceptor.java:52)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:109)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:124)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
W/System.err:     at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:170)
W/System.err:     at okhttp3.RealCall.execute(RealCall.java:60)
W/System.err:     at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:174)
W/System.err: 	... 7 more

这个问题已经困扰我好几天了,请麻烦解决一下,谢谢!

设备时间与自然时间不一致导致OSSFederationCredentialProvider失常

现象:
1.上传序列与token获取先后顺序毫无关联,有时先token有时先上传
2.不管啊是异步上传还是同步上传,状况如1
3.即使采用同步的方式先获取token,然后设置OSSStsTokenCredentialProvider,最后在上传,情况如1

报错如下:
`RawMessage:

<title>400 Bad Request</title>

400 Bad Request

Your browser sent a request that this server could not understand.


Powered by AliyunOSS `

x-oss-security-token

OSSUtils.class
headersToSign.put(lowerKey, header.getValue().trim());
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.trim()' on a null object reference

上传失败的概率很高

不知道是什么原因,今天上传文件失败率很高,超过百分之五十的失败率。

clientException != null,clientException.getMessage()为null
serviceException != null

上传失败问题

使用asyncResumableUpload上传设置setDeleteUploadOnCancelling为false,在上传过程中断开网络(部分上传,上传请求会死掉,无任何响应),此时调用task的cancel,再次发起上传请求,
出现ClientException("The uploading file is inconsistent with before"),

一个建议,放个精简的不带gradle的下载吧

SDK 80多M有点大啊,发现里面放了gradle3.3 汗。
主要是github的下载也不是完全流畅的(原因你懂的),用浏览器下不了因为失败就重新开始了。
用迅雷也失败了5次,还好有续传。
我相信我的网络不会是最糟糕的

好像okhttp包冲突

2.10的用了OKhttp 但是别的也用了okhttp怎么办?
compile 'com.facebook.fresco:imagepipeline-okhttp:0.8.0'
这个是fresco的库 然后报错
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 2
请问应该怎么解决

但是compile 'com.aliyun.dpa:oss-android-sdk:1.4.0'这个和compile 'com.facebook.fresco:imagepipeline-okhttp:0.8.0'无错

org.xml.sax.SAXParseException: Unexpected end of document

不知道为什么时不时会报这个错,而图片就没传成功:
11-16 16:12:42.227 W/System.err(20928): org.xml.sax.SAXParseException: Unexpected end of document
11-16 16:12:42.228 W/System.err(20928): at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:125)
11-16 16:12:42.228 W/System.err(20928): at com.alibaba.sdk.android.oss.internal.ResponseParsers.parseResponseErrorXML(ResponseParsers.java:580)
11-16 16:12:42.228 W/System.err(20928): at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:182)
11-16 16:12:42.228 W/System.err(20928): at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:36)
11-16 16:12:42.228 W/System.err(20928): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-16 16:12:42.228 W/System.err(20928): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
11-16 16:12:42.228 W/System.err(20928): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
11-16 16:12:42.228 W/System.err(20928): at java.lang.Thread.run(Thread.java:761)

code:
``

        val task = oss.asyncPutObject(put, object : OSSCompletedCallback<PutObjectRequest, PutObjectResult> {
            override fun onFailure(request: PutObjectRequest, clientException: ClientException, serviceException: ServiceException) {

                Log.d("xxx", "onFailure: " + serviceException)
            }

            override fun onSuccess(request: PutObjectRequest, result: PutObjectResult) {

                Log.d("xxx", "onSuccess:" + result)
            }
        })

``

[2.x] 怎么设置Bucket/Object的ACL

1.4版本可以通过Bucket.setBucketACL("public-read")来设置ACL,2.x里没有找到对应方法。
如果不设置ACL,PutObject的默认ACL是什么?

Explicit termination method 'close' not called

初始化SDK时,检测到有资源泄露问题
image

具体代码:

public static long getLogFileSize(File file) {
        long size = 0;
        if (file != null && file.exists()) {
            try {
                FileInputStream fis = new FileInputStream(file);
                size = (long)fis.available();
            } catch (Exception e) {
                log(Log.ERROR, e.toString());
            }
        }
        return size;
    }

获取文件长度使用 FileInputStream.available() 后没有关闭 FileInputStream

而对于读取文件大小使用 FileInputStream.available() 方法的一些弊端网上也是一堆的博客介绍。
我觉得此处使用 File.length() 完全可以满足需求。如果必须用流式方法建议加上关闭流的操作。

另外针对本地日志系统,我觉得可以参考其他第三方SDK一样,需要在初始化之前调用是否开启日志打印方法,如果不开启日志打印就不用初始化日志文件了。

InvalidAccessKeyId过期后再次上传文件问题

用过期的InvalidAccessKeyId上传文件,失败后重新请求InvalidAccessKeyId等参数再次提交还是提交失败,失败信息如下

InvalidAccessKeyId
The OSS Access Key Id you provided does not exist in our records.
5A603C11F1C42E8EF6CE2631
evcard.oss-cn-shanghai.aliyuncs.com
fdg3gr3evfdbgfdnbvxczvZgt4hg4ert

debug包没问题,release包有问题

App中集成了BugTags, 我把BugTags的部分功能禁用了,请教下有没有更好的解决方法。
crash_time:2018-01-25 15:44:59
com.alibaba.sdk.android.oss.ClientException: read failed: EBADF (Bad file descriptor)
[ErrorMessage]: read failed: EBADF (Bad file descriptor)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:190)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:236)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:236)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:43)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.io.IOException: read failed: EBADF (Bad file descriptor)
at libcore.io.IoBridge.read(IoBridge.java:513)
at java.io.FileInputStream.read(FileInputStream.java:177)
at okio.Okio$2.read(Okio.java:139)
at com.alibaba.sdk.android.oss.network.ProgressTouchableRequestBody.writeTo(ProgressTouchableRequestBody.java:59)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:62)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)
at okhttp3.RealCall.execute(RealCall.java:69)
at io.bugtags.agent.instrumentation.okhttp3.CallExtension.execute(CallExtension.java:43)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:167)
... 7 more
Caused by: android.system.ErrnoException: read failed: EBADF (Bad file descriptor)
at libcore.io.Posix.readBytes(Native Method)
at libcore.io.Posix.read(Posix.java:169)
at libcore.io.BlockGuardOs.read(BlockGuardOs.java:230)
at libcore.io.IoBridge.read(IoBridge.java:503)
... 27 more

new OSSClient导致线程数增多

有些情况下是根据Request不同来设置不同的鉴权方式的,现在sdk的做法是按OSSClient来设置鉴权,导致需要采用不同的鉴权方式的时候需要new新的OSSClient,这样会导致又生成了新的一个线程池,new的OSSClient越多的时候,应用产生的线程数量不就越多了吗。

这个问题能不能参照一下AsyncTask,在sdk内部把线程池设置成static的,甚至还可以在OSSClient的构造函数里面传入自己的线程池(sdk也可以提供一个默认static的线程池供开发者引用)

上传超时问题

android sdk调用asyncResumableUpload上传文件,在上传过程中断开网络,没有失败的回调,并且在恢复网络后,请求也没有任何反应(没有成功,也没有失败),这个问题很不解

上传下载Callback缺少set方法

由于公司APP业务原因,我们的上传是开启Service进行上传的,期间可以会切换到不同的界面,在不同的界面callback的逻辑是不一样的(更新不同的界面什么的),这就导致我们需要有callbadk的setter/getter方法,这事比较紧急,我们的文件存储已经全部迁移到阿里OSS上面了,以前的服务器已经关了,所以希望可以尽快提供callbadk的setter/getter方法,谢谢!

断点续传失败

已在阿里云的工单系统中沟通,非必现bug,之前也出现过这种情况
有一个文件无法上传,删除记录断点续传文件后,能够正常上传
失败日志如下:
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: java.io.IOException: Invalid int: "null"
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers$ListPartsResponseParser.parse(ResponseParsers.java:275)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers$ListPartsResponseParser.parse(ResponseParsers.java:262)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:314)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:54)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Thread.run(Thread.java:818)
03-15 10:32:02.034 19642-19829/com.camory.cloudcamera.china W/System.err: Caused by: java.lang.NumberFormatException: Invalid int: "null"
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.invalidInt(Integer.java:138)
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.parseInt(Integer.java:358)
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.parseInt(Integer.java:334)
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.valueOf(Integer.java:525)
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers.parseListPartsResponseXML(ResponseParsers.java:329)
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers.access$400(ResponseParsers.java:49)
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers$ListPartsResponseParser.parse(ResponseParsers.java:267)
03-15 10:32:02.035 19642-19829/com.camory.cloudcamera.china W/System.err: ... 7 more
03-15 10:32:02.070 19642-19829/com.camory.cloudcamera.china W/System.err: java.io.IOException: Invalid int: "null"
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers$ListPartsResponseParser.parse(ResponseParsers.java:275)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers$ListPartsResponseParser.parse(ResponseParsers.java:262)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:314)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:328)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:54)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Thread.run(Thread.java:818)
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: Caused by: java.lang.NumberFormatException: Invalid int: "null"
03-15 10:32:02.071 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.invalidInt(Integer.java:138)
03-15 10:32:02.072 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.parseInt(Integer.java:358)
03-15 10:32:02.072 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.parseInt(Integer.java:334)
03-15 10:32:02.072 19642-19829/com.camory.cloudcamera.china W/System.err: at java.lang.Integer.valueOf(Integer.java:525)
03-15 10:32:02.072 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers.parseListPartsResponseXML(ResponseParsers.java:329)
03-15 10:32:02.072 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers.access$400(ResponseParsers.java:49)
03-15 10:32:02.072 19642-19829/com.camory.cloudcamera.china W/System.err: at com.alibaba.sdk.android.oss.internal.ResponseParsers$ListPartsResponseParser.parse(ResponseParsers.java:267)
03-15 10:32:02.072 19642-19829/com.camory.cloudcamera.china W/System.err: ... 8 more

InvalidAccessKeyId 过期后再次提交问题

你好如果首次提交时InvalidAccessKeyId 不合法(其他参数正常),报错信息如下

InvalidAccessKeyId
The OSS Access Key Id you provided does not exist in our records.
5A5F1BC32A8F223E5E7353AD
evcard.oss-cn-shanghai.aliyuncs.com
fdg3gr3evfdbgfdnbvxczvZgt4hg4ert

如果这时我重新请求InvalidAccessKeyId等信息后,再次提交文件(参数均是新的)还是一直报上面的错误信息,这个时候需要手动把APP杀掉之后才能正常提交文件,检查代码后本地代码没有缓存任何关于InvalidAccessKeyId等参数。

请问sdk是不是对手机做了类似安全验证的东西

已添加混淆代码,但是混淆后上传失败!日志如下,很急!!!

java.lang.IllegalStateException: Compute signature failed!
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.sign(OSSUtils.java:319)
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.signRequest(OSSUtils.java:560)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:158)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:44)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.RuntimeException: Stub!
at org.apache.a.a.a.a.a(Base64.java:8)
at com.alibaba.sdk.android.oss.common.utils.BinaryUtil.toBase64String(BinaryUtil.java:21)
at com.alibaba.sdk.android.oss.common.auth.HmacSHA1Signature.computeSignature(HmacSHA1Signature.java:47)
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.sign(OSSUtils.java:316)
... 7 more
java.lang.IllegalStateException: Compute signature failed!
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.sign(OSSUtils.java:319)
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.signRequest(OSSUtils.java:560)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:158)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:287)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:44)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.RuntimeException: Stub!
at org.apache.a.a.a.a.a(Base64.java:8)
at com.alibaba.sdk.android.oss.common.utils.BinaryUtil.toBase64String(BinaryUtil.java:21)
at com.alibaba.sdk.android.oss.common.auth.HmacSHA1Signature.computeSignature(HmacSHA1Signature.java:47)
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.sign(OSSUtils.java:316)
... 8 more
com.alibaba.sdk.android.oss.ClientException: Compute signature failed!
[ErrorMessage]: Compute signature failed!
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:241)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:287)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:287)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:44)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalStateException: Compute signature failed!
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.sign(OSSUtils.java:319)
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.signRequest(OSSUtils.java:560)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:158)
... 7 more
Caused by: java.lang.RuntimeException: Stub!
at org.apache.a.a.a.a.a(Base64.java:8)
at com.alibaba.sdk.android.oss.common.utils.BinaryUtil.toBase64String(BinaryUtil.java:21)
at com.alibaba.sdk.android.oss.common.auth.HmacSHA1Signature.computeSignature(HmacSHA1Signature.java:47)
at com.alibaba.sdk.android.oss.common.utils.OSSUtils.sign(OSSUtils.java:316)
... 9 more

请问一下自签名模式的细节

String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";

credentialProvider = new OSSCustomSignerCredentialProvider() {
@OverRide
public String signContent(String content) {
return "OSS " + AccessKeyId + ":" + base64(hmac-sha1(AccessKeySecret, content));
}
};

OSS oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider);
我想试试本地算法实现,
把里面的两个key设置成自己的key 上传会报错:SignatureDoesNotMatch
用明文的new OSSPlainTextAKSKCredentialProvider("", "");就没有问题

retrofit2.0 okhttp冲突

你好,使用retrofit2.0,okhttp报错:
image

我都把okhttp和okio的依赖都删了,还是报这个错,这个怎么弄额?

endpoint 问题

endpoint设置为http://on.image.com/image格式时。
请求地址为什么要设置http://on.image.com/+“objectkey”格式

`String originHost = endpoint.getHost();

    // If it'd not a CName or it's in the CName exclude list, the host should be prefixed with the bucket name.
    if (!OSSUtils.isCname(originHost) && bucketName != null) {
        originHost = bucketName + "." + originHost;
    }

    String urlHost = null;
    if (isHttpDnsEnable()) {
        urlHost = HttpdnsMini.getInstance().getIpByHostAsync(originHost);
    } else {
        OSSLog.logDebug("[buildCannonicalURL], disable httpdns");
    }

    // The urlHost is null when the asynchronous DNS resolution API never returns IP.
    if (urlHost == null) {
        urlHost = originHost;
    }

    String headerHost = originHost;
    if (OSSUtils.isCname(originHost) && this.isInCustomCnameExcludeList() && bucketName != null) {
        headerHost = bucketName + "." + originHost;
    }

    addHeader(OSSHeaders.HOST, headerHost);

    baseURL = scheme + "://" + urlHost;
    if (objectKey != null) {
        baseURL += "/" + HttpUtil.urlEncode(objectKey, OSSConstants.DEFAULT_CHARSET_NAME);
    }`

OSSCustomSignerCredentialProvider的接口方法signContent返回content字符串中,其中md5一项中如果含有空格的话,而oss签名的时候将空格处理成+,这点不知是个bug还是个坑

我们用的php的后台,在自签名的时候,content字符串中其中md5校验值并不会将空格处理成+,而我试了把md5中的空格处理成+号后,签名就是对的,所以oss应该也是把md5中的空格处理成+号,还是说oss-android-sdk在返回的md5有问题?

只是创建OSSClient而已却 一直轮询打印 Closing expired connections Closing connections idle longer than 60000 MILLISECONDS

default
[DEBUG] [2018-04-09 18:51:10] org.apache.http.impl.conn.PoolingHttpClientConnectionManager.closeExpiredConnections(PoolingHttpClientConnectionManager.java:408) Closing expired connections
[DEBUG] [2018-04-09 18:51:10] org.apache.http.impl.conn.PoolingHttpClientConnectionManager.closeIdleConnections(PoolingHttpClientConnectionManager.java:401) Closing connections idle longer than 60000 MILLISECONDS
这样合适吗

上传可不可以不使用SDK进行上传动作

现在我们公司为了考虑安全问题,客户端不能得到acessKey 和 临时签名
现在下载的方法 通过重定向进行下载,客户端不知晓 acessKey 和相关信息
但是上传遇到问题,上传是不是也可以重定向

混淆问题

您好,没有找到混淆相关说明,请问该如何混淆呢?

OSSCompletedCallback多次回调的问题

当设置了失败重试次数以后,OSSCompletedCallback的onFailure会回调多次,这样就没法判断是最终失败了还是重试里面的某一次失败了,请问有什么好的办法吗?

okHttp版本

麻烦能不能尽快升级至okhttp:3.0.1呢,我们项目也是依赖于okHttp,并准备升级至最新版。谢谢。

上传失败

W/System.err: com.alibaba.sdk.android.oss.ClientException: File descriptor closed
W/System.err: [ErrorMessage]: File descriptor closed
W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:166)
W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:215)
W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:215)
W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:36)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err: at java.lang.Thread.run(Thread.java:818)
W/System.err: Caused by: java.io.IOException: File descriptor closed
W/System.err: at libcore.io.Posix.readBytes(Native Method)
W/System.err: at libcore.io.Posix.read(Posix.java:147)
W/System.err: at libcore.io.BlockGuardOs.read(BlockGuardOs.java:230)
W/System.err: at libcore.io.IoBridge.read(IoBridge.java:472)
W/System.err: at java.io.FileInputStream.read(FileInputStream.java:177)
W/System.err: at okio.Okio$2.read(Okio.java:139)
W/System.err: at com.alibaba.sdk.android.oss.network.ProgressTouchableRequestBody.writeTo(ProgressTouchableRequestBody.java:59)
W/System.err: at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:62)
W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

总是会出现超时如何解决

[2018-03-08 20:10:13] - request---------------------
request url=http://timehut-cn-sz.oss-cn-shenzhen.aliyuncs.com/sz/videos/original/201803/1082316/767efc8fd5da47bab04b4838ce34f6aa53e86e347eb89244655e4ee690721812.mp4
request params=uploadId=0FD19F85D77542E3B70AA23CA85805F2&partNumber=9
requestHeader [Authorization]: OSS STS.EYh2SX4fX1b8YHVaaAtNa7Bop:Xah6wr03zbTvDBclCs5Lq8x/GiM=
requestHeader [User-Agent]: aliyun-sdk-android/2.7.3(Linux/Android 8.0.0/VKY-AL00;HUAWEIVKY-AL00)
requestHeader [Host]: timehut-cn-sz.oss-cn-shenzhen.aliyuncs.com
requestHeader [x-oss-security-token]: CAIS8QF1q6Ft5B2yfSjIpJrdeens2bl5hqDTW27nhWEUeMFN2IfEkjz2IHpMe3NqAu0ftvQxnWlY7P4flq5vSppIRVHYNSSRYFGftVHPWZHInuDox55m4cTXNAr+Ihr/29CoEIedZdjBe/CrRknZnytou9XTfimjWFrXWv/gy+QQDLItUxK/cCBNCfpPOwJms7V6D3bKMuu3OROY6Qi5TmgQ41An1DMns//jn5TAsUKA0meXkLFF+97DRbG/dNRpMZtFVNO44fd7bKKp0lQLsUAVrv0t0fUcqWme54HHWwRLgAidPvCR78VrKwZ1dlqk3njmOgiWGoABdwY0oI0f/9QRjff5wnachI3PI7sg6WVK2XXKGox41DLizZmB4tYQDhmKg0k8eOlcbtxu/XBXR/82xWLEY/yE0SnJJ8fA68QzJKV33U5gCy3vNlLrSs2zd4UsBH8KSYGB6Hx2t542hHKtHlkHuE3Scrf6KfyLmrqmoK9Mo0fPLrE=
requestHeader [Date]: Thu, 08 Mar 2018 12:10:13 GMT
requestHeader [Content-MD5]: vybBAKm/7DGciDcoJRlBmQ==
requestHeader [Content-Type]: video/mp4

------>end of log

[2018-03-08 20:10:44] - Encounter local execpiton: java.net.SocketTimeoutException: timeout
------>end of log

crash_time:2018-03-08 20:10:44
com.alibaba.sdk.android.oss.ClientException: timeout
[ErrorMessage]: timeout
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:190)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:43)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:784)
Caused by: java.net.SocketTimeoutException: timeout
at okio.Okio$4.newTimeoutException(Okio.java:230)
at okio.AsyncTimeout.exit(AsyncTimeout.java:285)
at okio.AsyncTimeout$2.read(AsyncTimeout.java:241)
at okio.RealBufferedSource.indexOf(RealBufferedSource.java:345)
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:217)
at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:212)
at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
at okhttp3.RealCall.execute(RealCall.java:77)
at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:167)
... 5 more
Caused by: java.net.SocketException: Socket closed
at java.net.SocketInputStream.read(SocketInputStream.java:203)
at java.net.SocketInputStream.read(SocketInputStream.java:139)
at okio.Okio$2.read(Okio.java:139)
at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
... 25 more
------>end of log

[2018-03-08 20:10:44] - shouldRetry - com.alibaba.sdk.android.oss.ClientException: timeout
[ErrorMessage]: timeout
------>end of log

[2018-03-08 20:10:44] - [run] - retry, retry type: OSSRetryTypeShouldRetry
------>end of log

我们发现每天总是有不少用于遇到超时问题,不管是国内还是国外,同一套代码之前用七牛和S3都不会有问题,切换到阿里云之后就经常各种超时。用的最新SDK2.7.3。

SignatureDoesNotMatch 求教是神原因啊

                                                               <Error>
                                                                 <Code>SignatureDoesNotMatch</Code>
                                                                 <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
                                                                 <RequestId>582192E82444BF734B40C2A2</RequestId>
                                                                 <HostId>xxx</HostId>
                                                                 <OSSAccessKeyId>zk8nfO0CwDzG3saq</OSSAccessKeyId>
                                                                 <SignatureProvided>dEPZSd7GlWsRY9XS+zyYShTbeiU=</SignatureProvided>
                                                                 <StringToSign>PUT
                                                               
                                                               image/jpg
                                                               Tue, 08 Nov 2016 08:55:03 GMT

OSSCredentialProvider credentialProvider = new OSSPlainTextAKSKCredentialProvider("xxx", "xxxxx");
keyid 和key 都是从服务器获取的,但是每次都是SignatureDoesNotMatch,写成阿里云给我的那一套 keyid 和keysercert也不行

Glide 加载图片失败.

Glide.with(context).load(ImageUtils.getUrl(user.getImgUrl())).dontAnimate().error(R.drawable.pic_head_gray).into(civHead)
加载显示不出来,

超时错误:

11-03 18:11:05.906 16598-16710/com.vigourbox.vbox:PublishUploadService I/System.out: [CDS]EAGAIN in Recvfrom
11-03 18:11:05.907 16598-16710/com.vigourbox.vbox:PublishUploadService I/System.out: [CDS]read byte is 0
11-03 18:11:05.908 16598-16718/com.vigourbox.vbox:PublishUploadService I/System.out: [CDS]close[38512]
11-03 18:11:05.912 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: java.net.SocketTimeoutException: timeout
11-03 18:11:05.918 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.Okio$4.newTimeoutException(Okio.java:227)
11-03 18:11:05.918 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.AsyncTimeout.exit(AsyncTimeout.java:284)
11-03 18:11:05.918 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.AsyncTimeout$2.read(AsyncTimeout.java:240)
11-03 18:11:05.918 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.RealBufferedSource.indexOf(RealBufferedSource.java:325)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.RealBufferedSource.indexOf(RealBufferedSource.java:314)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:210)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:67)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okhttp3.RealCall.execute(RealCall.java:63)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:213)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at com.alibaba.sdk.android.oss.network.OSSRequestTask.call(OSSRequestTask.java:39)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-03 18:11:05.919 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at java.lang.Thread.run(Thread.java:818)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: Caused by: java.net.SocketTimeoutException
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at java.net.PlainSocketImpl.read(PlainSocketImpl.java:497)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:42)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:242)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.Okio$2.read(Okio.java:138)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: at okio.AsyncTimeout$2.read(AsyncTimeout.java:236)
11-03 18:11:05.920 16598-16710/com.vigourbox.vbox:PublishUploadService W/System.err: ... 25 more
11-03 18:11:05.932 16598-16710/com.vigourbox.vbox:PublishUploadService I/System.out: [CDS]rx timeout:15000

报InvalidPartOrder

把MultipartUploadSamples里面的方法移植过来用,all task Success! 但是 [StatusCode]: 400, [Code]: InvalidPartOrder, [Message]: The list of parts was not in ascending order. Parts list must specified in order by part number

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.