上传/下载问题

最近更新时间:2023-05-24 17:07:37

查看PDF

1. 什么情况会导致下载的文件和最新上传的文件不一致?

2. 如何进行大文件上传?

3. 是否允许上传同名文件?

4. 调用Put Object Copy接口拷贝文件,如果目标文件已经存在,如何处理?

5. POST表单上传文件后,可以自动进行跳转吗?

6. 上传文件的时候如何设置Content Type?

7. 是否可以看到文件的上传进度?

8. 启动上传任务后如何终止?

9. 是否支持断点续传?

10. 是否支持秒传?

11. 上传Object,响应头部中的ETag代表什么意思?

12. 文件通过KS3-import工具上传后,为什么无法访问?

13. 文件上传为什么会返回413错误码?

14. 使用同一对AKSK通过不同IP请求访问KS3会不会被限制?

15. 用C/C++版SDK做一个客户端,上传文件可以不带AK/SK出去吗?

16. 调用API限速上传为什么会返回408错误码?

17. 在使用js sdk上传文件时,为什么无法获得ETag响应头?

18. 如何获取KS3文件访问地址?

19. KS3支持gzip传输压缩吗?


1. 什么情况会导致下载的文件和最新上传的文件不一致?

一般是缓存的原因,先检查是否使用了CDN,刷新CDN,清空本地缓存后,重新请求。

2. 如何进行大文件上传?

当您需要上传大文件(大于100MB)时,建议通过API/SDK进行分块上传。控制台中-内容管理页面中上传的单个文件大小不允许超过500MB,每次上传文件个数不能超过255个,若超过此阈值或单个文件过大,需通过API进行上传。大文件的上传分为三步:

  1. Initiate Multipart Upload初始化分块上传
  2. Upload Part 上传文件块
  3. Complete Multipart Upload 完成分块上传

详情参见分块上传文档

3. 是否允许上传同名文件?

KS3对象存储允许用户上传同名文件,但由于尚未提供版本管理,原文件会被覆盖。用户可以在上传前通过Head Object接口检查文件是否存在。

4. 调用Put Object Copy接口拷贝文件,如果目标文件已经存在,如何处理?

API返回400 Invalid key,不会覆盖文件。

5. POST表单上传文件后,可以自动进行跳转吗?

可以。在POST的表单域设置success_action_redirect,指定成功上传后客户端的重定向url即可,参见: POST Object文档

6. 上传文件的时候如何设置Content Type?

增加Content-Type请求头用于描述文件内容MIME格式。可以通过SDK设置,参见SDK文档:JavaPHPPythonAndroidIOSJavaScriptNode.jsC#C/C++GO,或者调用PUT Object APIPOST Object API来设置Content Type。

7. 是否可以看到文件的上传进度?

在控制台上传文件,可以看到文件的上传进度。也可以通过 KS3 Finder 工具进行上传文件,不仅可以看到文件的上传进度,还可以进行断点续传。也可以通过命令行工具 KS3Util 上传文件,通过命令查看文件的上传进度。

8. 启动上传任务后如何终止?

在控制台上传文件时,可以观察到文件的上传进度,可以点击叉号进行取消;使用KS3 Finder图形化工具,可以在“任务管理”窗口,停止和取消上传任务,详见KS3 Finder文档;也可以使用API对分块上传的任务进行终止,详见Abort Multipart Upload API 文档。 若启动上传任务的时候无法终止任务,使用stop 或者 kill 命令。

9. 是否支持断点续传?

用户可以使用KS3 Finder图形化工具使用断点续传的功能;也可以利用分块上传的API来实现文件的断点续传;控制台目前不支持文件的断点续传。

10. 是否支持秒传?

用户可以通过Head Object API ,去判断要上传的文件是否存在,如果存在就无需再次上传。对于已经上传的文件,通过Head请求,可以实现秒传功能。

11. 上传Object,响应头部中的ETag代表什么意思?
  • Etag说明:
    • 通过PUT/POST上传的文件,对消息内容(不包括头部)计算MD5值,获得128比特位数字,etag=对128比特位进行16进制编码,content-md5=对128比特位进行base64编码;
    • 通过分块上传complete接口返回的Etag只是一串唯一的标识,跟文件内容并无关系。

具体请参考:

12. 文件通过KS3-import工具上传后,为什么无法访问?

检查文件的访问权限是否设置为私密。若KS3-import工具的conf文件中的参数cannedAcl设置为private,那么上传后的文件,只有文件的所有者或者被授予读取权限后才可以访问,因此您必须签名认证通过后才访问该文件。

13. 文件上传为什么会返回413错误码?

返回413错误码是因为上传的文件不符合以下限制:

  1. 使用普通上传(使用 put objcet API),文件大小不应超过5GB。
  2. 使用分块上传,文件小于5MB时,除了最后一块的其他块大小应不小于100KB;文件大于5MB时,除了最后一块的其他块大小应不小于5MB且不大于5GB。
14. 使用同一对AK/SK通过不同IP请求访问KS3会不会被限制?

AK/SK(AccessKey和SecretKey)是用来对非公开资源的请求生成签名的,KS3默认不会对使用同一对AK/SK通过不同的IP的请求做访问限制。

15. 用C/C++版SDK做一个客户端,上传文件可以不带AK/SK吗?

SDK支持自动计算签名,需要将AK/SK写入到程序中。若不想带AK/SK,用户可以参照KS3签名格式,自己构造签名。

16. 调用API限速上传为什么会返回408错误码?

返回408错误码是因为服务器等候请求时发生超时。数据交互空闲超过60s会触发服务器返回408错误码,建议用户排查自身的限速设置情况。

17. 在使用js sdk上传文件时,为什么无法获得ETag响应头?

答:需要在CORS设置中配置Exposed Header,设定允许从应用程序进行访问的响应头部。

解决方法:
登录控制台,选择要上传文件的bucket,进入【空间设置】->【CORS配置】,设置允许跨境请求的域名(Allow Origin)、方法(Method)、请求头(Allow Header),添加Exposed Header,输入“ETag”,点击确认。

注意事项:
配置存储空间CORS策略后,会有2分钟缓存生效时间,不是立即生效。

18. 如何获取KS3文件访问地址?

答:获取KS3文件访问地址目前有两种方法:

a.如果是公开文件,由BucketName(存储空间名称)、KS3 Endpoint(域名)、ObjectName(对象名称)拼接组成:http://
{bucket}.{endpoint}/{key}。
比如:http://
test-bucket.kss.ksyun.com/2018/image.jpg,
该URL中的{bucket}是test-bucket,{endpoint}是kss.ksyun.com,{key}是2018/image.jpg。

KS3 Endpoint(域名)

Endpoint 表示 KS3 对外服务的访问域名。KS3 以 RESTful API 的形式对外提供服务,支持HTTP/HTTPS协议,当访问不同的 Region 的时候,需要不同的域名。同一个 Region 内网和外网的 Endpoint 也是不同的,请查看Region和域名的对照表
KS3要求存储空间(Bucket)所在的Region要与Endpoint一致。
例如:
您有一个位于北京区域的名为myBucket的存储空间,如果您访问https://mybucket.ks3-cn-shanghai.ksyun.com/test.jpg ,Endpoint为上海区域,您将会收到一个“HTTP 响应代码 307 临时重定向”错误。

另外,如果被访问的文件ACL是“私密”时,需加上签名信息才可以访问,查看签名计算方法,

b.管理控制台获取
具体操作请参见:文件分享

19. KS3支持gzip传输压缩吗?

答:支持。

用户需要在下载文件(GET Object)时带有Accept-Encoding请求头,且请求的文件超过1KB大小。

支持压缩的文件类型包括:text/plain application/x-javascript text/css text/javascript application/javascript text/json text/js text/html text/htm text/xml application/xml application/atom+xml application/xml+rss application/xhtml+xml application/xml-dtd ,需要在上传文件时,在请求头Content-Type中指明。

举例如下:
在客户端发出的HTTP请求中公布压缩方案列表:

Accept-Encoding: gzip, deflate

服务器响应所使用的方案,由Content-Encoding响应 header

Content-Encoding: gzip

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈