Closed lliudb closed 6 years ago
no such bucke状态码631的报错就是指定的空间不存在,把DEV_BUCKET和PRODUCT_BUCKET都打印看看呢,直接用SDK操作会出问题么
已经看过来,如描述中说,是两个bucket是同一个,也是用这个bucket生成的token上传没问题
直接写死bucket,用SDK里的demo看看是否正常, op=/move/ZGV2ZWxvcC1yZXNvdXJjZS1jb250ZW50/ZGV2ZWxvcC1yZXNvdXJjZS1jb250ZW50OmRhc2QuanBn/force/true&op=/move/ZGV2ZWxvcC1yZXNvdXJjZS1jb250ZW50OjE=/ZGV2ZWxvcC1yZXNvdXJjZS1jb250ZW50OmRhc2QuanBn/force/true&op=/move/ZGV2ZWxvcC1yZXNvdXJjZS1jb250ZW50/YXBwLXJlc291cmNlLWNvbnRlbnQ6ZGFzZC5qcGc=/force/true
YXBwLXJlc291cmNlLWNvbnRlbnQ6ZGFzZC5qcGc=然后这个解码出来和其他的空间名都不一样 显示的空间名是app-resource-content,其他的解出来是develop-resource-content这个
$param = BucketManager::buildBatchMove('develop-resource-content', ['img01.jpg', 'img02.jpg'], 'develop-resource-content', true);
$auth = new Auth(ACCESS_KEY, SECRET_KEY);
$bucket_Manager = new BucketManager($auth);
list($response, $error) = $bucket_Manager->batch($param);
写死依然不行,仍然报这个no such bucket
错误
YXBwLXJlc291cmNlLWNvbnRlbnQ6ZGFzZC5qcGc=然后这个解码出来和其他的空间名都不一样 显示的空间名是app-resource-content
这个是我追加的,所以会有这个bucket,但是如上条回复所说,写死后依然会出现这个问题
app-resource-content这个bucket账号里面有么?之前不是说只有一个空间么?把最后一段这个move到这个app-resource-content空间去除看看是不是正常
看了下文档,我将
$param = BucketManager::buildBatchMove('develop-resource-content', ['img01.jpg', 'img02.jpg'], 'develop-resource-content', true);
改成
$param = BucketManager::buildBatchMove('develop-resource-content', ['img01.jpg'=> 'img01.jpg', 'img02.jpg'=>'img02.jpg'], 'develop-resource-content', true);
就成功了
问题是,php是包含隐式键的,所以SDK方法 BucketManager::buildBatchMove 不会报错。
private static function twoKeyBatch($operation, $source_bucket, $key_pairs, $target_bucket, $force)
{
if ($target_bucket === null) {
$target_bucket = $source_bucket;
}
$data = array();
$forceOp = "false";
if ($force) {
$forceOp = "true";
}
foreach ($key_pairs as $from_key => $to_key) {
$from = \Qiniu\entry($source_bucket, $from_key);
$to = \Qiniu\entry($target_bucket, $to_key);
array_push($data, $operation . '/' . $from . '/' . $to . "/force/" . $forceOp);
}
return $data;
}
可能需要改一下
还有,你们可能需要检查下后台代码,这种情况为啥会返回no such bucket
的错误
还有,批量操作的时候,是否支持同时操作多个bucket到多个bucket的操作
感谢你的反馈,还有多个bucket之间是可以进行batch操作的
也谢谢你的解答
Laravel 5.5 composer.json "qiniu/php-sdk": "^7.2",
其中运行时
返回的结果是
已确认
DEV_BUCKET
和PRODUCT_BUCKET
都是同一个名称,因为没建第二个bucket,用的统一个库,然后ACCESS_KEY
,SECRET_KEY
也没问题 但是会报这个no such bucket
问题,请问是什么原因