上传/下载

最近更新时间:2019-08-13 16:53:10

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

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

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

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

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

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

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

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

9. 是否支持断点续传?

10. 是否支持秒传?

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

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

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 完成分块上传

强请参见[分块上传文档]。(https://docs.ksyun.com/documents/951)

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

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

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

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

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

可以。在POST的表单域设置success_action_redirect,指定成功上传后客户端的重定向url即可,参见: [POST Object文档]。(https://docs.ksyun.com/documents/938#表单域)

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

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

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

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

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

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

9. 是否支持断点续传?

用户可以使用KS3 Explorer图形化工具使用断点续传的功能;也可以利用分块上传的API来实现文件的断点续传;控制台不支持文件的断点续传。上传任务执行的时候强制关闭后,下次重新开启任务后,大于1G会使用分块传输,可以续传,小于1G则只能重新传输。

10. 是否支持秒传?

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

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

Etag的值是对用户上传对象的MD5值,使用Base64编码。PUT上传和POST上传,都会有ETag响应头,分块上传对于上传的任何块都有ETag响应头,但是对于整个文件,没有ETag响应头。

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

检查文件的访问权限是否设置为私密。若KS3Up-tool工具的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传输压缩吗?

答:支持。

需要在请求文件时带有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

金山云,开启您的云计算之旅

注册有礼