[font='Helvetica Neue', Helvetica, Arial, sans-serif]第一步的initiateMultipartUpload是可以正常运行的,也得到了uploadID。
[font='Helvetica Neue', Helvetica, Arial, sans-serif]但是第二步分片上传时,一运行就显示
[font='Helvetica Neue', Helvetica, Arial, sans-serif]The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed
上传请求如下
$oss->uploadPart(array(
'Bucket' => Param::get('OSS_BUCKET'),
'Key' => $key
'Content' => '123456789',
'UploadId' => $init_ans->getUploadId(),
'PartNumber' => 1,
'PartSize' => 9,
));
@各位大神@各位大神@各位大神@各位大神@各位大神@各位大神
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到"The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed"这个错误,通常意味着您尝试使用的Upload ID有问题,或者之前尝试的分片上传任务可能已经被取消、完成或不存在。请按照以下步骤进行排查和解决:
检查Upload ID有效性:确保您在调用uploadPart
方法时使用的UploadId
是从初始化多部分上传(initiateMultipartUpload
)操作中正确获取的,并且没有被修改过。可以打印出来确认一下其值是否与预期相符。
时间同步问题:虽然不常见,但服务器的时间不同步也可能导致这类问题,因为OSS可能会基于时间戳来验证请求的有效性。请确保您的服务器时间与标准时间保持同步。
重复使用Upload ID:每个Upload ID对应一个唯一的分片上传任务,不能在不同的上传任务之间复用。如果您不小心重复使用了之前的Upload ID,需要重新执行initiateMultipartUpload
以获得新的Upload ID。
上传状态检查:有可能是之前的上传过程(包括初始化)由于某些原因(如网络中断)并没有成功完成,但实际上您认为已经成功了。可以通过查询多部分上传的部分列表(listParts
)来确认该Upload ID下是否有已上传的分片,这有助于判断Upload ID是否有效以及上传任务的状态。
权限问题:虽然错误信息未直接指出权限问题,但确保执行上传操作的阿里云OSS账号具有足够的权限来执行这些操作也是必要的。
API版本和客户端兼容性:确认您使用的阿里云OSS SDK版本是最新的,并且与您的OSS服务端兼容。有时旧版本的SDK可能无法处理新引入的功能或变更。
如果以上步骤都无法解决问题,建议直接查看阿里云OSS的官方文档或联系阿里云技术支持获取更专业的帮助。同时,也可以尝试捕获并打印出完整的错误响应信息,里面可能包含更多有助于诊断问题的详细信息。