huaweicloud / huaweicloud-sdk-java-obs Goto Github PK
View Code? Open in Web Editor NEWThe OBS SDK for Java, which is used for accessing Object Storage Service
License: Other
The OBS SDK for Java, which is used for accessing Object Storage Service
License: Other
There are some vulnerabilities in version before 2.20.6 dependent software jackson-databind.Please solve it.
build.gradle
implementation 'com.huaweicloud:esdk-obs-java:3.21.4.1'
log
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844 Exception in thread "main" java.lang.StackOverflowError at java.util.concurrent.ConcurrentHashMap$Node.<init>(ConcurrentHashMap.java:625) at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1019) at java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1535) at java.lang.ClassLoader.getClassLoadingLock(ClassLoader.java:457) at java.lang.ClassLoader.loadClass(ClassLoader.java:398) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at com.test.Application.main(Application.java:14)
目前的操作只能是把全部bucker全部查出来,然后循环遍历去判断有没有和我指定bucket名称相同的返回,感觉这样很浪费宽带和时间。
vivoY66 手机 安卓系统:5.0 使用obg 上传文件服务(上传视频文件,请官方人员给出原因谢谢)。查看SDK文档及论坛没有给出合理解决办法 出现 如下错误:
com.obs.services.exception.ObsException: OBS servcie Error Message. Request Error: javax.net.ssl.SSLException: Write error: ssl=0x84abb2c8: I/O error during system call, Connection reset by peer
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at com.obs.services.internal.utils.ServiceUtils.changeFromServiceException(ServiceUtils.java:727)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient.doActionWithResult(ObsClient.java:2537)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient.putObject(ObsClient.java:1625)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient.putObject(ObsClient.java:1656)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient.putObject(ObsClient.java:1642)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at com.gaga.live.video.VideoPreviewActivity.lambda$hwOBSPut$10(VideoPreviewActivity.java:323)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at com.gaga.live.video.-$$Lambda$VideoPreviewActivity$vkfMqIFZv_TK88PL6bMM1QKo3hg.subscribe(lambda)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at io.reactivex.Observable.subscribe(Observable.java:12267)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at io.reactivex.internal.operators.observable.ObservableObserveOn.subscribeActual(ObservableObserveOn.java:45)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at io.reactivex.Observable.subscribe(Observable.java:12267)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)
12-26 09:47:35.477 30746-30746/com.gaga.live W/System.err: at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at java.lang.Thread.run(Thread.java:818)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: Caused by: javax.net.ssl.SSLException: Write error: ssl=0x84abb2c8: I/O error during system call, Connection reset by peer
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.google.android.gms.org.conscrypt.NativeCrypto.SSL_write(Native Method)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.google.android.gms.org.conscrypt.NativeSsl.write(:com.google.android.gms@[email protected] (040306-344294571):3)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write(:com.google.android.gms@[email protected] (040306-344294571):5)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okio.Okio$1.write(Okio.java:79)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okio.AsyncTimeout$1.write(AsyncTimeout.java:180)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:179)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okio.RealBufferedSink.write(RealBufferedSink.java:42)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http1.Http1Codec$FixedLengthSink.write(Http1Codec.java:295)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okio.ForwardingSink.write(ForwardingSink.java:35)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.CallServerInterceptor$CountingSink.write(CallServerInterceptor.java:149)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:179)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okio.RealBufferedSink.write(RealBufferedSink.java:92)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.internal.RepeatableRequestEntity.writeToBIO(RepeatableRequestEntity.java:110)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.internal.RepeatableRequestEntity.writeTo(RepeatableRequestEntity.java:131)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:72)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at okhttp3.RealCall.execute(RealCall.java:92)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.internal.RestStorageService.performRequest(RestStorageService.java:483)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.internal.RestStorageService.performRestPut(RestStorageService.java:807)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.internal.RestStorageService.performRestPut(RestStorageService.java:798)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.internal.ObsService.putObjectImpl(ObsService.java:2045)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient.access$5800(ObsClient.java:159)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient$45.action(ObsClient.java:1632)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient$45.action(ObsClient.java:1626)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: at com.obs.services.ObsClient.doActionWithResult(ObsClient.java:2525)
12-26 09:47:35.487 30746-30746/com.gaga.live W/System.err: ... 19 more
发生异常时可再次调用断点续传上传接口进行重新上传是怎么处理的?是再次用obsClient.uploadFile(request)么;再次上传似乎不是续传而是重新上传啊
BucketStorageInfo storageInfo =obsClient.getBucketStorageInfo(“backetName”);
Long num=storageInfo.getObjectNumber();//对象个数
Long size=storageInfo.getSize();//空间大小
Performing file based upload (described in here: https://support.huaweicloud.com/en-us/sdk-java-devg-obs/obs_21_0603.html) gives error.
Version: 3.20.6
In RequestConvertor
class
long fileSize = request.getFile().length();
this line raised error because of method call, length()
, on null object: request.getFile()
This is caused from this line
request.setInput(new FileInputStream(request.getFile()));
When you set input to request it sets file to null. This is the setInput method in PutObjectRequest
class
public void setInput(InputStream input) {
this.input = input;
this.file = null;
}
marker 列举对象的起始位置,返回的对象列表将是对象名按照字典序排序后该参数以后的所有对象。
只有marker 这个有时候满足不了
调用ObsClient.createTemporarySignature()方法生成临时访问url,会报下面的告警日志,但是临时url正常生成了。
WARN class not found exception. com.obs.services.internal.utils.ReflectUtils
java.lang.ClassNotFoundException: sun.misc.BASE64Decoder
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at com.obs.services.internal.utils.ReflectUtils.(ReflectUtils.java:79)
at com.obs.services.internal.utils.ServiceUtils.toBase64(ServiceUtils.java:407)
at com.obs.services.internal.utils.ServiceUtils.signWithHmacSha1(ServiceUtils.java:184)
at com.obs.services.internal.ObsService.createTemporarySignatureResponse(ObsService.java:1023)
at com.obs.services.ObsClient.createTemporarySignature(ObsClient.java:528)
putObject(String bucketName, String objectKey, InputStream input, ObjectMetadata metadata)
metadata包含属性“origin”,object上传后其它属性正常,但“origin”属性没有了
Android端压缩文件成zip格式,分别通过对象和流式上传,都可以成功,但是从服务端后台下载下来的压缩文件已经被损坏了
okhttp-3.12.1.jar 与esdk-obs-java-3.21.4.1.jar 中RetryAndFollowUpInterceptor冲突
没有获取自定义域名的接口吗
按照官网案例编码,结果报错🤣🤣
try(ObsClient obsClient = new ObsClient(accessKey, securityKey, obsUrl)){
obsClient.deleteObject(bucketName, "foo.mp4");
}catch (Exception e){
logger.error(e.getMessage());
}
}
java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;
at com.obs.services.internal.RestConnectionService.createRequestBuilder(RestConnectionService.java:171)
at com.obs.services.internal.RestConnectionService.setupConnection(RestConnectionService.java:162)
at com.obs.services.internal.RestStorageService.performRestForApiVersion(RestStorageService.java:1000)
at com.obs.services.internal.service.AbstractRequestConvertor.getAuthTypeNegotiationResponseImpl(AbstractRequestConvertor.java:355)
at com.obs.services.internal.service.AbstractRequestConvertor.parseAuthTypeInResponse(AbstractRequestConvertor.java:338)
at com.obs.services.internal.service.AbstractRequestConvertor.getApiVersion(AbstractRequestConvertor.java:302)
at com.obs.services.AbstractClient.access$000(AbstractClient.java:56)
at com.obs.services.AbstractClient$ActionCallbackWithResult.authTypeNegotiate(AbstractClient.java:370)
at com.obs.services.AbstractClient.doActionWithResult(AbstractClient.java:384)
at com.obs.services.AbstractObjectClient.deleteObject(AbstractObjectClient.java:392)
at com.obs.services.AbstractObjectClient.deleteObject(AbstractObjectClient.java:380)
依赖版本
<dependency>
<groupId>com.huawei.apigateway</groupId>
<artifactId>java-sdk-core</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>esdk-obs-java</artifactId>
<version>3.21.8</version>
</dependency>
最近两天炸锅互联网的的log4j 漏洞,https://nvd.nist.gov/vuln/detail/CVE-2021-44228
发现这个库是使用的,请问有什么更新计划吗?
发生超时之后,没有任何地址和具体的超时时间信息
[ERROR][ vert.x-eventloop-thread-7][2019-03-06 11:16:03.544] c.c.h.s.CommonDispatcher[44] - handle POST /rest/guidemgr/v1/manage/article/upload/picture fail
com.obs.services.exception.ObsException: Error message:Request error. OBS servcie Error Message.
at com.obs.services.internal.utils.ServiceUtils.changeFromServiceException(ServiceUtils.java:731)
at com.obs.services.ObsClient.doActionWithResult(ObsClient.java:2484)
at com.obs.services.ObsClient.initiateMultipartUpload(ObsClient.java:2147)
at com.obs.services.internal.ResumableClient.prepare(ResumableClient.java:338)
at com.obs.services.internal.ResumableClient.uploadFileCheckPoint(ResumableClient.java:129)
at com.obs.services.internal.ResumableClient.uploadFileResume(ResumableClient.java:69)
at com.obs.services.ObsClient.uploadFile(ObsClient.java:1632)
at cse.guide.manager.service.impl.GuideServiceImpl.uploadPicture(GuideServiceImpl.java:413)
at io.vertx.ext.web.impl.BlockingHandlerDecorator.lambda$handle$0(BlockingHandlerDecorator.java:48)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:272)
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at okhttp3.internal.platform.Platform.connectSocket(Platform.java:129)
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:240)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:160)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
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:126)
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.obs.services.internal.RestStorageService.performRequest(RestStorageService.java:420)
at com.obs.services.internal.RestStorageService.performRequestWithoutSignature(RestStorageService.java:382)
at com.obs.services.internal.RestStorageService.performRestForApiVersion(RestStorageService.java:760)
at com.obs.services.internal.ObsService.getAuthTypeNegotiationResponseImpl(ObsService.java:2853)
at com.obs.services.internal.ObsService.parseAuthTypeInResponse(ObsService.java:2837)
at com.obs.services.internal.ObsService.getApiVersion(ObsService.java:2824)
at com.obs.services.ObsClient.access$8000(ObsClient.java:150)
at com.obs.services.ObsClient$ActionCallbackWithResult.authTypeNegotiate(ObsClient.java:2456)
at com.obs.services.ObsClient.doActionWithResult(ObsClient.java:2470)
... 13 common frames omitted
根据com.obs.services.internal.transPutObjectRequest
代码中的逻辑在设置文件的时候,这里方法会
input = new FileInputStream(request.getFile());
得到文件流, 但是后面没有关闭这个文件流的逻辑。
所以导致了文件上传后文件依然被进程占用。
在项目中集成OBS的SDK时,示例代码如下
/**
* Copyright 2019 Huawei Technologies Co.,Ltd.
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use
* this file except in compliance with the License. You may obtain a copy of the
* License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
import com.obs.services.ObsClient;
import com.obs.services.ObsConfiguration;
import com.obs.services.exception.ObsException;
import com.obs.services.model.*;
import com.obs.services.model.DeleteObjectsResult.DeleteObjectResult;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
/**
* This sample demonstrates how to list objects under specified bucket
* from OBS using the OBS SDK for Java.
*/
public class ListObjectsSample
{
private static final String endPoint = "obs.cn-south-1.myhuaweicloud.com";
private static final String ak = "111111111111111111111111111111";
private static final String sk = "222222222222222222222222222222";
private static ObsClient obsClient;
private static String bucketName = "kakashow-static";
public static void main(String[] args)
throws UnsupportedEncodingException
{
ObsConfiguration config = new ObsConfiguration();
config.setSocketTimeout(30000);
config.setConnectionTimeout(10000);
config.setEndPoint(endPoint);
try
{
/*
* Constructs a obs client instance with your account for accessing OBS
*/
obsClient = new ObsClient(ak, sk, config);
final String content = "Hello OBS";
final String keyPrefix = "MyObjectKey";
ObjectListing objectListing = null;
ListObjectsRequest listObjectsRequest = null;
/*
* First insert 100 objects for demo
*/
List<String> keys = new ArrayList<String>();
for (int i = 0; i < 100; i++)
{
String key = keyPrefix + i;
InputStream instream = new ByteArrayInputStream(content.getBytes("UTF-8"));
obsClient.putObject(bucketName, key, instream, null);
keys.add(key);
}
System.out.println("Put " + keys.size() + " objects completed.");
/*
* List objects using default parameters, will return up to 1000 objects
*/
System.out.println("List objects using default parameters:\n");
objectListing = obsClient.listObjects(bucketName);
for (ObsObject object : objectListing.getObjects())
{
System.out.println("\t" + object.getObjectKey() + " etag[" + object.getMetadata().getEtag() + "]");
}
System.out.println();
/*
* List the first 10 objects
*/
System.out.println("List the first 10 objects :\n");
listObjectsRequest = new ListObjectsRequest(bucketName);
listObjectsRequest.setMaxKeys(10);
objectListing = obsClient.listObjects(listObjectsRequest);
for (ObsObject object : objectListing.getObjects())
{
System.out.println("\t" + object.getObjectKey() + " etag[" + object.getMetadata().getEtag() + "]");
}
System.out.println();
String theSecond10ObjectsMarker = objectListing.getNextMarker();
/*
* List the second 10 objects using marker
*/
System.out.println("List the second 10 objects using marker:\n");
listObjectsRequest = new ListObjectsRequest(bucketName);
listObjectsRequest.setMaxKeys(10);
listObjectsRequest.setMarker(theSecond10ObjectsMarker);
objectListing = obsClient.listObjects(listObjectsRequest);
for (ObsObject object : objectListing.getObjects())
{
System.out.println("\t" + object.getObjectKey() + " etag[" + object.getMetadata().getEtag() + "]");
}
System.out.println();
/*
* List objects with prefix and max keys
*/
System.out.println("List objects with prefix and max keys:\n");
listObjectsRequest = new ListObjectsRequest(bucketName);
listObjectsRequest.setPrefix(keyPrefix + "2");
listObjectsRequest.setMaxKeys(5);
objectListing = obsClient.listObjects(listObjectsRequest);
for (ObsObject object : objectListing.getObjects())
{
System.out.println("\t" + object.getObjectKey() + " etag[" + object.getMetadata().getEtag() + "]");
}
System.out.println();
/*
* List all the objects in way of pagination
*/
System.out.println("List all the objects in way of pagination:\n");
listObjectsRequest = new ListObjectsRequest(bucketName);
listObjectsRequest.setMaxKeys(10);
String nextMarker = null;
int index = 1;
do
{
listObjectsRequest.setMarker(nextMarker);
objectListing = obsClient.listObjects(listObjectsRequest);
System.out.println("Page:" + index++ + "\n");
for (ObsObject object : objectListing.getObjects())
{
System.out.println("\t" + object.getObjectKey() + " etag[" + object.getMetadata().getEtag() + "]");
}
nextMarker = objectListing.getNextMarker();
} while (objectListing.isTruncated());
System.out.println();
/*
* Delete all the objects created
*/
DeleteObjectsRequest request = new DeleteObjectsRequest();
request.setBucketName(bucketName);
request.setQuiet(false);
KeyAndVersion[] kvs = new KeyAndVersion[keys.size()];
index = 0;
for (String key : keys)
{
kvs[index++] = new KeyAndVersion(key);
}
request.setKeyAndVersions(kvs);
System.out.println("Delete results:");
DeleteObjectsResult deleteObjectsResult = obsClient.deleteObjects(request);
for (DeleteObjectResult object : deleteObjectsResult.getDeletedObjectResults())
{
System.out.println("\t" + object);
}
}
catch (ObsException e)
{
e.printStackTrace();
System.out.println("Response Code: " + e.getResponseCode());
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getErrorRequestId());
System.out.println("Host ID: " + e.getErrorHostId());
}
finally
{
if (obsClient != null)
{
try
{
/*
* Close obs client
*/
obsClient.close();
}
catch (IOException e)
{
}
}
}
}
}
发生错误:
com.obs.services.exception.ObsException: OBS servcie Error Message. java.lang.reflect.InvocationTargetException
at com.obs.services.internal.utils.ServiceUtils.changeFromServiceException(ServiceUtils.java:634)
at com.obs.services.ObsClient.doActionWithResult(ObsClient.java:3939)
at com.obs.services.ObsClient.putObject(ObsClient.java:2412)
at com.obs.services.ObsClient.putObject(ObsClient.java:2386)
at ListObjectsSample.main(ListObjectsSample.java:70)
Caused by: java.lang.reflect.InvocationTargetException
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:498)
at com.obs.services.internal.utils.ReflectUtils.toBase64(ReflectUtils.java:89)
at com.obs.services.internal.utils.ServiceUtils.toBase64(ServiceUtils.java:407)
at com.obs.services.internal.utils.ServiceUtils.signWithHmacSha1(ServiceUtils.java:184)
at com.obs.services.internal.utils.AbstractAuthentication.caculateSignature(AbstractAuthentication.java:38)
at com.obs.services.internal.utils.AbstractAuthentication.makeAuthorizationString(AbstractAuthentication.java:53)
at com.obs.services.internal.RestStorageService.authorizeHttpRequest(RestStorageService.java:934)
at com.obs.services.internal.RestStorageService.performRequest(RestStorageService.java:618)
at com.obs.services.internal.RestStorageService.performRestPut(RestStorageService.java:998)
at com.obs.services.internal.RestStorageService.performRestPut(RestStorageService.java:987)
at com.obs.services.internal.ObsService.putObjectImpl(ObsService.java:1670)
at com.obs.services.ObsClient.access$6000(ObsClient.java:211)
at com.obs.services.ObsClient$47.action(ObsClient.java:2419)
at com.obs.services.ObsClient$47.action(ObsClient.java:2413)
at com.obs.services.ObsClient.doActionWithResult(ObsClient.java:3929)
... 3 more
Caused by: java.lang.RuntimeException: Stub!
at android.util.Base64.encode(Base64.java:10)
... 21 more
奇怪的是这个问题在一个新的工程中不会出现
下面是我引用的包:
aliyun-java-sdk-core-3.4.0.jar
aliyun-java-sdk-ecs-4.2.0.jar
aliyun-java-sdk-ram-3.0.0.jar
aliyun-java-sdk-sts-3.0.0.jar
aliyun-sdk-oss-3.8.0.jar
android-4.1.1.4.jar
animal-sniffer-annotations-1.17.jar
api-common-1.10.1.jar
auto-value-annotations-1.7.4.jar
aws-java-sdk-core-1.11.855.jar
aws-java-sdk-kms-1.11.855.jar
aws-java-sdk-s3-1.11.855.jar
checker-compat-qual-2.5.5.jar
commons-compress-1.8.1.jar
commons-pool-1.5.5.jar
conscrypt-openjdk-uber-2.0.0.jar
cxf-core-3.1.2.jar
cxf-rt-frontend-jaxrs-3.1.2.jar
cxf-rt-transports-http-3.1.2.jar
error_prone_annotations-2.4.0.jar
esdk-obs-java-3.20.6.1.jar
failureaccess-1.0.1.jar
fastjson-1.2.12.jar
gax-1.60.0.jar
gax-httpjson-0.77.0.jar
geronimo-servlet_3.0_spec-1.0.jar
google-api-client-1.30.11.jar
google-api-services-bigquery-v2-rev20201030-1.30.10.jar
google-auth-library-credentials-0.22.0.jar
google-auth-library-oauth2-http-0.22.0.jar
google-cloud-bigquery-1.124.4.jar
google-cloud-core-1.93.10.jar
google-cloud-core-http-1.93.10.jar
google-http-client-1.37.0.jar
google-http-client-appengine-1.37.0.jar
google-http-client-jackson2-1.37.0.jar
google-oauth-client-1.31.1.jar
grpc-context-1.33.1.jar
guava-30.0-android.jar
httpclient-4.5.13.jar
httpcore-4.4.13.jar
ion-java-1.0.2.jar
j2objc-annotations-1.3.jar
jackson-annotations-2.10.0.jar
jackson-core-2.11.3.jar
jackson-databind-2.10.0.jar
jackson-dataformat-cbor-2.6.7.jar
java-xmlbuilder-1.2.jar
javax.annotation-api-1.3.2.jar
javax.servlet-api-3.1.0.jar
javax.ws.rs-api-2.0.1.jar
jdom-1.1.jar
jedis-2.1.0.jar
jettison-1.1.jar
jmespath-java-1.11.855.jar
json-20080701.jar
jsr305-3.0.2.jar
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
log4j-api-2.13.2.jar
log4j-core-2.13.2.jar
okhttp-3.14.4.jar
okio-1.17.2.jar
opencensus-api-0.24.0.jar
opencensus-contrib-http-util-0.24.0.jar
opengl-api-gl1.1-android-2.1_r1.jar
org.osgi.core-4.2.0.jar
proto-google-common-protos-2.0.0.jar
proto-google-iam-v1-1.0.2.jar
protobuf-java-3.13.0.jar
protobuf-java-util-3.13.0.jar
shiro-cache-1.4.0.jar
shiro-config-core-1.4.0.jar
shiro-core-1.4.0.jar
shiro-crypto-cipher-1.4.0.jar
shiro-crypto-core-1.4.0.jar
shiro-crypto-hash-1.4.0.jar
shiro-event-1.4.0.jar
shiro-lang-1.4.0.jar
stax2-api-3.1.4.jar
stax-api-1.0.1.jar
threetenbp-1.5.0.jar
woodstox-core-asl-4.4.1.jar
xmlParserAPIs-2.6.2.jar
xmlschema-core-2.2.1.jar
xpp3-1.1.4c.jar
xz-1.5.jar
我参照开发文档
https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0105.html
当添加完 compile 'com.huaweicloud:esdk-obs-android:3.21.8'
原本正常的okhttp请求,报错
Attempt to invoke virtual
method 'okhttp3.HttpUrl
okhttp3.Request.url()' on a null
object reference
sdk version is 3.19.7
Maven mvnrepository last version also is 3.19.7
异常定位到com.obs.services.internal.RequestConvertor 467行,request.getFile()为null。发现就在上面462行的的request.setInput将file置为null了,导致了空指针异常。
由于pom版本[3.21.8,)是这种写法,导致更新maven,下载了最新版本。
新版本3.21.8.1实例化ObsClient失败,debug在com.obs.services.AbstractClient#static代码块failIfExternalEntityParsingCannotBeConfigured抛出异常org.springframework.beans.BeanUtils#instantiateClass(java.lang.reflect.Constructor, java.lang.Object...)
throw new BeanInstantiationException(ctor, "Constructor threw exception", ex.getTargetException());
JDK11下sun.misc.BASE64Decoder class not found问题
obs sdk版本:com.huaweicloud:esdk-obs-java:3.20.6.1
java.lang.ClassNotFoundException: sun.misc.BASE64Decoder
at java.base/java.lang.Class.forNameImpl(Native Method)
at java.base/java.lang.Class.forName(Class.java:343)
at com.obs.services.internal.utils.ReflectUtils.(ReflectUtils.java:79)
at com.obs.services.internal.utils.ServiceUtils.toBase64(ServiceUtils.java:407)
at com.obs.services.internal.utils.ServiceUtils.signWithHmacSha1(ServiceUtils.java:184)
at com.obs.services.internal.utils.AbstractAuthentication.caculateSignature(AbstractAuthentication.java:38)
at com.obs.services.internal.utils.AbstractAuthentication.makeAuthorizationString(AbstractAuthentication.java:53)
at com.obs.services.internal.RestStorageService.authorizeHttpRequest(RestStorageService.java:934)
at com.obs.services.internal.RestStorageService.performRequest(RestStorageService.java:618)
at com.obs.services.internal.RestStorageService.performRestGet(RestStorageService.java:982)
at com.obs.services.internal.RestStorageService.performRestGet(RestStorageService.java:961)
at com.obs.services.internal.ObsService.listObjectsImpl(ObsService.java:2124)
一直报
PutObject: Response Code: -1
Error Message: null
Error Code: null
Request ID: null
Host ID: null
调用obsClient.createBucket(“obsBucket”);
NoSuchBucket
The specified bucket does not exist
0000017C11ADD169951127911DBDB09D
6Znivw4MmdSwirEClq1nZ3gKpNE6pFJppcuG/zUYdGzEkKw+Zb6EIzPQNRZ74Pw2
已存在的桶名
已添加 maven {
url 'http://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/'
}
maven {
url 'http://mirrors.huaweicloud.com/repository/maven/'
}
Failed to resolve: com.huawei.storage:esdk-obs-android:3.20.6.2
我在使用 对象存储服务 OBS > SDK参考> Android> 上传对象> 断点续传上传 的时候,百分百按照该文档所描述的Demo进行操作,发现并不能实现续传功能,在翻阅源码发现,在解析uploadFile_record文件时,所使用的SecureObjectInputStream类中,对“ResumableClient$DownloadCheckPoint”和“ResumableClient$UploadCheckPoint”进行了解析验证,这里的解析代码 String name = desc.getName();中还被得到name 为UploadCheckPoint内部所使用的类,例如“java.util.ArrayList”“UploadPart”等的结果,造成uploadFile_record文件解析过程抛出异常,而造成文件必须重新开始上传。请问是不支持断点续传了吗?还是应该如何正确实现断点续传?
public final class SecureObjectInputStream extends ObjectInputStream {
public SecureObjectInputStream() throws IOException, SecurityException {
}
public SecureObjectInputStream(InputStream in) throws IOException {
super(in);
}
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
String name = desc.getName();
if (!name.equals("com.obs.services.internal.ResumableClient$DownloadCheckPoint") && !name.equals("com.obs.services.internal.ResumableClient$UploadCheckPoint")) {
throw new ClassNotFoundException(name + "not find");
} else {
return super.resolveClass(desc);
}
}
}
调用删除方法,成功删除文件,但返回结果中deleteMarker属性却一直是false,即使桶里没有被删除的文件
代码:DeleteObjectResult result = getObsClient().deleteObject(bucketName, fileName);
日志信息:2021-06-17 16:13:17 468|com.obs.services.internal.RestStorageService|tryRequest|421|Response for 'DELETE'. Content-Type: null, ResponseCode:204, Headers: Server: OBS
ObjectMetadata objectMetadata = ossClient.getObject(new GetObjectRequest(bucketName, objectName), file);
一个接口搞定下载,并返回 objectMetadata,OBS 非不支持这个简单接口
我想在后台生成临时url,前端直接拿url传到obs服务器,怎么弄呢,put请求一定要带contenttype,太不方便了
引入方式 implementation 'com.huaweicloud:esdk-obs-android:3.21.8'
版本 3.21.8
2021-11-26 14:13:11.900 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: ERROR StatusLogger Could not reconfigure JMX
2021-11-26 14:13:11.900 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory;
2021-11-26 14:13:11.900 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:140)
2021-11-26 14:13:11.900 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:629)
2021-11-26 14:13:11.900 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:691)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:708)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:263)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:243)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.LogManager.getContext(LogManager.java:174)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:669)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at com.obs.log.LoggerBuilder.getLogger(LoggerBuilder.java:53)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at com.obs.log.LoggerBuilder.getLogger(LoggerBuilder.java:62)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at com.obs.services.internal.RestConnectionService.(RestConnectionService.java:42)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at com.maezia.ezia.composer.phoneapp.uploader.UploaderManager$UploadToObsTask.uploadInitiateMultipart(UploaderManager.java:379)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at com.maezia.ezia.composer.phoneapp.uploader.UploaderManager$UploadToObsTask.doInBackground(UploaderManager.java:274)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at com.maezia.ezia.composer.phoneapp.uploader.UploaderManager$UploadToObsTask.doInBackground(UploaderManager.java:209)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:333)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
2021-11-26 14:13:11.901 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at java.lang.Thread.run(Thread.java:764)
2021-11-26 14:13:11.902 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.management.ManagementFactory" on path: DexPathList[[zip file "/data/app/com.maezia.ezia.composer.phoneapp-x45qbK9IiA0pRNPJmRi-ug==/base.apk"],nativeLibraryDirectories=[/data/app/com.maezia.ezia.composer.phoneapp-x45qbK9IiA0pRNPJmRi-ug==/lib/arm64, /system/lib64, /system/vendor/lib64]]
2021-11-26 14:13:11.902 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
2021-11-26 14:13:11.902 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
2021-11-26 14:13:11.902 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
2021-11-26 14:13:11.902 10715-11891/com.maezia.ezia.composer.phoneapp W/System.err: ... 22 more
2021-11-26 14:13:12.765 10715-11891/com.maezia.ezia.composer.phoneapp I/UploadPart: 0000017D5AE05619804FD51858E1A3F4
2021-11-26 14:13:12.801 10715-10738/com.maezia.ezia.composer.phoneapp I/zygote64: Do full code cache collection, code=1006KB, data=643KB
2021-11-26 14:13:12.804 10715-10738/com.maezia.ezia.composer.phoneapp I/zygote64: After code cache collection, code=945KB, data=539KB
2021-11-26 14:13:28.296 10715-11897/com.maezia.ezia.composer.phoneapp I/UploadPart: Part#4 done
2021-11-26 14:13:41.383 10715-11894/com.maezia.ezia.composer.phoneapp I/UploadPart: Part#1 done
2021-11-26 14:13:48.841 10715-11896/com.maezia.ezia.composer.phoneapp I/UploadPart: Part#3 done
2021-11-26 14:13:53.241 10715-11895/com.maezia.ezia.composer.phoneapp I/UploadPart: Part#2 done
--------- beginning of crash
2021-11-26 14:13:53.259 10715-11891/com.maezia.ezia.composer.phoneapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4
Process: com.maezia.ezia.composer.phoneapp, PID: 10715
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
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:764)
Caused by: javax.xml.parsers.FactoryConfigurationError: Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl not found
at com.obs.services.internal.xml.OBSXMLBuilder.newInstance(OBSXMLBuilder.java:146)
at com.obs.services.internal.xml.OBSXMLBuilder.findDocumentBuilderFactory(OBSXMLBuilder.java:59)
at com.obs.services.internal.xml.OBSXMLBuilder.createDocumentImpl(OBSXMLBuilder.java:66)
at com.obs.services.internal.xml.OBSXMLBuilder.create(OBSXMLBuilder.java:153)
at com.obs.services.internal.V2Convertor.transCompleteMultipartUpload(V2Convertor.java:78)
at com.obs.services.internal.service.ObsMultipartObjectService.completeMultipartUploadImpl(ObsMultipartObjectService.java:93)
at com.obs.services.AbstractMultipartObjectClient.access$400(AbstractMultipartObjectClient.java:39)
at com.obs.services.AbstractMultipartObjectClient$5.action(AbstractMultipartObjectClient.java:185)
at com.obs.services.AbstractMultipartObjectClient$5.action(AbstractMultipartObjectClient.java:182)
at com.obs.services.AbstractClient.doActionWithResult(AbstractClient.java:388)
at com.obs.services.AbstractMultipartObjectClient.completeMultipartUpload(AbstractMultipartObjectClient.java:181)
at com.maezia.ezia.composer.phoneapp.uploader.UploaderManager$UploadToObsTask.uploadInitiateMultipart(UploaderManager.java:451)
at com.maezia.ezia.composer.phoneapp.uploader.UploaderManager$UploadToObsTask.doInBackground(UploaderManager.java:274)
at com.maezia.ezia.composer.phoneapp.uploader.UploaderManager$UploadToObsTask.doInBackground(UploaderManager.java:209)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
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:764)
--------- beginning of system
sun.misc 不是 java 标准公开的 API ,在一些环境下会加载不到这些类。有 apache commons 或者 spring 的 BASE64 工具可供替换。
java.lang.ClassNotFoundException: sun.misc.BASE64Encoder
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151) ~[microservice-1.0.0.jar:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Unknown Source) ~[?:?]
at com.obs.services.internal.utils.ReflectUtils.(ReflectUtils.java:73) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.utils.ServiceUtils.toBase64(ServiceUtils.java:407) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.utils.ServiceUtils.signWithHmacSha1(ServiceUtils.java:184) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.utils.AbstractAuthentication.caculateSignature(AbstractAuthentication.java:38) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.utils.AbstractAuthentication.makeAuthorizationString(AbstractAuthentication.java:53) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.RestStorageService.authorizeHttpRequest(RestStorageService.java:934) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.RestStorageService.performRequest(RestStorageService.java:618) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.RestStorageService.performRestGet(RestStorageService.java:982) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.RestStorageService.performRestGet(RestStorageService.java:961) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.internal.ObsService.listObjectsImpl(ObsService.java:2124) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.ObsClient.access$1500(ObsClient.java:211) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.ObsClient$4.action(ObsClient.java:881) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.ObsClient$4.action(ObsClient.java:878) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.ObsClient.doActionWithResult(ObsClient.java:3929) [esdk-obs-java-3.20.6.jar!/:?]
at com.obs.services.ObsClient.listObjects(ObsClient.java:877) [esdk-obs-java-3.20.6.jar!/:?]
// 您的工程中可以只保留一个全局的ObsClient实例
// ObsClient是线程安全的,可在并发场景下使用
ObsClient obsClient = null;
try
{
String endPoint = "https://your-endpoint";
String ak = "*** Provide your Access Key ***";
String sk = "*** Provide your Secret Key ***";
// 创建ObsClient实例
obsClient = new ObsClient(ak, sk, endPoint);
// 调用接口进行操作,例如上传对象
HeaderResponse response = obsClient.putObject("bucketname", "objectname", new File("localfile")); // localfile为待上传的本地文件路径,需要指定到具体的文件名
System.out.println(response);
}
catch (ObsException e)
{
System.out.println("HTTP Code: " + e.getResponseCode());
System.out.println("Error Code:" + e.getErrorCode());
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Request ID:" + e.getErrorRequestId());
System.out.println("Host ID:" + e.getErrorHostId());
}finally{
// 关闭ObsClient实例,如果是全局ObsClient实例,可以不在每个方法调用完成后关闭
// ObsClient在调用ObsClient.close方法关闭后不能再次使用
if(obsClient != null){
try
{
// obsClient.close();
}
catch (IOException e)
{
}
}
}
上述示例代码在最新版本:3.20.6.2出现异常,如下:(在3.20.6.1中不会)
HTTP Code: -1
Error Code:null
Error Message: null
Request ID:null
Host ID:null
Error Message: OBS servcie Error Message. Request Error: java.lang.NoSuchMethodError: okhttp3.internal.http.RetryAndFollowUpInterceptor.(Lokhttp3/OkHttpClient;Z)V
使用最新版本的华为obs sdk,配置好域名 key等相关配置,请求出现403 的错误,但是将域名换成ip就没啥问题,不知道这是不是个bug
RestUtils里的中文表达式只能匹配中文字, 不能匹配中文标点符号. 导致报错
不是说最低支持19吗?
obsClient.setBucketFSStatus(new SetBucketFSStatusRequest(bucketName, FSStatusEnum.ENABLED))
报错:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
但是 obsClient.getBucketFSStatus却可以执行。
你好。OBS SDK 在本站的最新版本是 3.20.4(发布于 5 月 6 日),而在 Maven **仓库上的最新版本是 3.19.7 (发布于去年 8 月 2 日)。希望能够同步更新。
Hello there, the SDK released on Maven Central is outdated (3.19.7, released on 2nd August, last year) compared to the one released on Github (3.20.4, released on 6th May). Could you please keep it updated.
使用官方的断点续传示例,报这个错误
代码如下:
`UploadFileRequest request = new UploadFileRequest("anne-bqj-file", objectname + "/" + fileMD5 + "." + endName);
// 设置待上传的本地文件,其中localfile为待上传的本地文件路径,需要指定到具体的文件名
request.setUploadFile(filePath);
// 设置分段上传时的最大并发数
request.setTaskNum(5);
// 设置分段大小为10MB
request.setPartSize(10 * 1024 * 1024);
// 开启断点续传模式
request.setEnableCheckpoint(true);
request.setProgressListener(new ProgressListener() {
@Override
public void progressChanged(ProgressStatus status) {
mObsUploadCallBack.progressChange(status);
}
});
// 每上传1MB数据反馈上传进度
request.setProgressInterval(1024 * 1024L);
try{
// 进行断点续传上传
CompleteMultipartUploadResult result = obsClient.uploadFile(request);
LogUtils.e("上传成功",result.getStatusCode() + "");
if (result.getStatusCode() == 200){
}else{
}
}catch (ObsException e) {
// 发生异常时可再次调用断点续传上传接口进行重新上传
LogUtils.e("上传失败,重新断点上传");
e.printStackTrace();
// obsClient.uploadFile(request); 不继续尝试,直接失败,让用户自己处理
}`
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.