问题描述
目标文件已存在。
问题原因
您发起了PutObject或CopyObject等涉及到文件写入操作的请求,但是您试图写入的文件名已经存在同名文件,导致写入失败。
问题示例
比如您发起了如下请求:
PUT /object-exist.txt HTTP/1.1
Content-Length:ContentLength
Content-Type: ContentType
Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
x-oss-forbid-overwrite: true
上述请求中x-oss-forbid-overwrite
参数的作用是设置是否覆盖同名文件,指定x-oss-forbid-overwrite
为true时,表示禁止覆盖同名Object,此时如果examplebucket中已经存在名为object-exist.txt的文件,就会导致该错误。
解决方案
如果想验证您指定的文件名是否存在,可以使用HeadObject接口,如果返回的HTTP状态码为404则说明目标文件不存在。
如果您想覆盖同名文件,可以删去请求中的
x-oss-forbid-overwrite
请求头,或将其设为false。如果您想成功上传文件的同时保留旧的版本,推荐开启Bucket的版本控制功能。具体操作,请参见开启版本控制。
相关文档
文档内容是否对您有帮助?