开发者社区> 问答> 正文

oss文件名中有空格上传失败

oss上传文件,文件名有空格的上传失败,(带中文的可以上传成功。)


07-28 10:47:01.855: E/AndroidRuntime(30548): FATAL EXCEPTION: Thread-2053
07-28 10:47:01.855: E/AndroidRuntime(30548): java.lang.IllegalArgumentException: Illegal character in path at index 79: h t t p://xxx.oss-cn-shenzhen.aliyuncs.com/xxx/MTg2MjA5NTA1OTQ=/t2 1.txt
07-28 10:47:01.855: E/AndroidRuntime(30548):     at java.net.URI.create(URI.java:727)
07-28 10:47:01.855: E/AndroidRuntime(30548):     at org.apache.http.client.methods.HttpPut.<init>(HttpPut.java:71)
07-28 10:47:01.855: E/AndroidRuntime(30548):     at com.alibaba.sdk.android.oss.storage.BaseObject.generateRequest(BaseObject.java:158)
07-28 10:47:01.855: E/AndroidRuntime(30548):     at com.alibaba.sdk.android.oss.storage.OSSFile.syncUpload(OSSFile.java:80)
07-28 10:47:01.855: E/AndroidRuntime(30548):     at com.alibaba.sdk.android.oss.storage.OSSFile.upload(OSSFile.java:149)
07-28 10:47:01.855: E/AndroidRuntime(30548):     at com.xx.core.aliyun.oss.impl.OssUtil110$2.run(OssUtil110.java:168)
07-28 10:47:02.495: I/BaseActivity(30548): onDestroy


求助!谢!


展开
收起
zsm 2015-07-28 10:10:54 14907 0
5 条回答
写回答
取消 提交回答
  • Reoss文件名中有空格上传失败
    1.3.0 版本已经修复了,可以下载测试一下。
    https://docs.aliyun.com/?spm=5176.383663.9.9.288sMf#/pub/oss/sdk/sdk-download&android
    2015-08-04 17:05:12
    赞同 展开评论 打赏
  • Reoss文件名中有空格上传失败
    用url encoding,这样就可以上传了

    -------------------------

    回7楼zsm的帖子
    你用的是什么sdk,如果是个bug,请在官网提个工单
    2015-07-29 15:36:35
    赞同 展开评论 打赏
  • zsm
    回2楼徇云一五的帖子
    主要是手机上的文件,文件名可以有空格。
    如果有指明object key不能有空格等一些非法字符,处理的话是可以处理的。
    且对于上传文件名带空格的文件,在ios上是可以成功的,在android上失败。

    -------------------------

    Reoss文件名中有空格上传失败
    引用第1楼云目录于2015-07-28 23:19发表的  :
    这个也不奇怪。


    主要是手机上的文件,文件名可以有空格。
    如果有指明object key不能有空格等一些非法字符,处理的话是可以处理的。
    且对于上传文件名带空格的文件,在i o s上是可以成功的,在android上失败。

    -------------------------

    ReReoss文件名中有空格上传失败
    引用第5楼oss-dev于2015-07-29 15:36发表的 Reoss文件名中有空格上传失败 :
    用url encoding,这样就可以上传了

    url encoding了,签名就验证不过去了。

    -------------------------

    Reoss文件名中有空格上传失败
    引用第6楼徇云一五于2015-07-30 05:35发表的  :
    恩,你上传应该用base64编码了吧,那文件名也就不存在空格的情况啦


    文件名没有做base64编码。
    我也用了url encode,可这样所有文件上传都报签名验证SignatureDoesNotMatch错误。
    而且通过控制台或ios上传的带空格文件名的文件,android这边下载就不行了。


    当然我们可以对几个平台都做base64编码,但这样岂不限制太多,OSS平台也不应这样。
    android使用的是1.1.0版本。
    2015-07-29 09:27:41
    赞同 展开评论 打赏
  • 本来空格就是非法字符,一定要带吗

    -------------------------

    恩,你上传应该用base64编码了吧,那文件名也就不存在空格的情况啦

    2015-07-29 07:55:46
    赞同 展开评论 打赏
  • 这个也不奇怪。
    2015-07-28 23:19:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载