4. 调用Put Object Copy接口拷贝文件,如果目标文件已经存在,如何处理?
11. 上传Object,响应头部中的ETag代表什么意思?
12. 文件通过KS3-import工具上传后,为什么无法访问?
14. 使用同一对AKSK通过不同IP请求访问KS3会不会被限制?
15. 用C/C++版SDK做一个客户端,上传文件可以不带AK/SK出去吗?
17. 在使用js sdk上传文件时,为什么无法获得ETag响应头?
一般是缓存的原因,先检查是否使用了CDN,刷新CDN,清空本地缓存后,重新请求。
当您需要上传大文件(大于100MB)时,建议通过API/SDK进行分块上传。控制台中-内容管理页面中上传的单个文件大小不允许超过500MB,每次上传文件个数不能超过255个,若超过此阈值或单个文件过大,需通过API进行上传。大文件的上传分为三步:
详情参见分块上传文档
KS3对象存储允许用户上传同名文件,但由于尚未提供版本管理,原文件会被覆盖。用户可以在上传前通过Head Object接口检查文件是否存在。
API返回400 Invalid key,不会覆盖文件。
可以。在POST的表单域设置success_action_redirect,指定成功上传后客户端的重定向url即可,参见: POST Object文档
增加Content-Type请求头用于描述文件内容MIME格式。可以通过SDK设置,参见SDK文档:Java、PHP、Python、Android、IOS、JavaScript、Node.js、C#、C/C++、GO,或者调用PUT Object API、POST Object API来设置Content Type。
在控制台上传文件,可以看到文件的上传进度。也可以通过 KS3 Finder 工具进行上传文件,不仅可以看到文件的上传进度,还可以进行断点续传。也可以通过命令行工具 KS3Util 上传文件,通过命令查看文件的上传进度。
在控制台上传文件时,可以观察到文件的上传进度,可以点击叉号进行取消;使用KS3 Finder图形化工具,可以在“任务管理”窗口,停止和取消上传任务,详见KS3 Finder文档;也可以使用API对分块上传的任务进行终止,详见Abort Multipart Upload API 文档。 若启动上传任务的时候无法终止任务,使用stop 或者 kill 命令。
用户可以使用KS3 Finder图形化工具使用断点续传的功能;也可以利用分块上传的API来实现文件的断点续传;控制台目前不支持文件的断点续传。
用户可以通过Head Object API ,去判断要上传的文件是否存在,如果存在就无需再次上传。对于已经上传的文件,通过Head请求,可以实现秒传功能。
具体请参考:
检查文件的访问权限是否设置为私密。若KS3-import工具的conf文件中的参数cannedAcl设置为private,那么上传后的文件,只有文件的所有者或者被授予读取权限后才可以访问,因此您必须签名认证通过后才访问该文件。
返回413错误码是因为上传的文件不符合以下限制:
AK/SK(AccessKey和SecretKey)是用来对非公开资源的请求生成签名的,KS3默认不会对使用同一对AK/SK通过不同的IP的请求做访问限制。
SDK支持自动计算签名,需要将AK/SK写入到程序中。若不想带AK/SK,用户可以参照KS3签名格式,自己构造签名。
返回408错误码是因为服务器等候请求时发生超时。数据交互空闲超过60s会触发服务器返回408错误码,建议用户排查自身的限速设置情况。
答:需要在CORS设置中配置Exposed Header,设定允许从应用程序进行访问的响应头部。
解决方法:
登录控制台,选择要上传文件的bucket,进入【空间设置】->【CORS配置】,设置允许跨境请求的域名(Allow Origin)、方法(Method)、请求头(Allow Header),添加Exposed Header,输入“ETag”,点击确认。
注意事项:
配置存储空间CORS策略后,会有2分钟缓存生效时间,不是立即生效。
答:获取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。
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.管理控制台获取
具体操作请参见:文件分享。
答:支持。
用户需要在下载文件(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
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!