全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

上传/下载问题

最近更新时间:2023-12-21 15:39:23

1. 什么情况会导致通过CDN下载的对象和最新上传的对象不一致?

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

2. 如何进行大对象上传?

当您需要上传大对象(大于100MB)时,建议通过API/SDK进行分块上传。控制台中内容管理页面中上传的单个对象大小不允许超过1GB,每次上传对象个数不能超过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判断对象是否存在。

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

  • Etag说明:

    • 通过PUT/POST上传的对象,对消息内容(不包括头部)计算MD5值,获得128比特位数字,etag=对128比特位进行16进制编码,content-md5=对128比特位进行base64编码;

    • 通过分块上传complete接口返回的Etag只是一串唯一的标识,跟对象内容并无关系。

具体请参考:

12. 对象通过KS3-import、Util等工具上传后,为什么无法访问?

检查对象的访问权限是否设置为私密。若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对象访问地址由BucketName(存储空间名称)、KS3 Endpoint(域名)、Key(对象路径及名称)拼接组成。

格式: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一致。

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

20. KS3推荐通过什么形式进行对象上传或下载?

KS3提供包括API、SDK、工具、控制台等丰富的上传或下载方式,您可以根据实际业务需要自由选择,详细使用方式请见:https://docs.ksyun.com/documents/860

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈