开发者社区> 问答> 正文

PHPInvalidBucketNameMessageThe specified bucket is not valid.

刚开始时学习OSS,按照PHP SDK文档编写了以下代码,OSSClient初始化OK,但是putObject出错,请大侠们帮助指点。万分感谢!




错误信息如下: http status: 400, requestId: 566427D08CDE4EE0393E45D1, Code: InvalidBucketName, Message: The specified bucket is not valid.
我的理解是bucket的名字不争取,但是我确认了是正确的,实在想不明白是哪里出了问题。


代码如下:
try {          
self::$ossClient = new OssClient(AL_OSS_ACCESS_ID, AL_OSS_ACCESS_KEY, AL_OSS_ENDPOINT);            
echo print_r(self::$ossClient, true);            
echo "<p>";                        
$bucket= "mytestbucket2016";            
$object = "uploadname.txt";            
$content = "Hi, OSS.";            
try {                 self::$ossClient->putObject($bucket, $object, $content,null);   //这行代码出错            
}
catch (OssException $e) {                
echo $e->getMessage();  //异常信息是 Code: InvalidBucketName, Message: The specified bucket is not valid.           
}
                                }
catch (OssException $e) {            
print $e->getMessage();        
}

展开
收起
开心东仔 2015-12-06 20:27:00 16547 0
4 条回答
写回答
取消 提交回答
  • 问题原因

    Bucket命名不符合规范。

    本回答引用自以下KB文档:通过状态码和OSS报错码排查问题

    更多帮助请访问以下站点:

    2021-08-31 16:50:49
    赞同 展开评论 打赏
  • RePHPInvalidBucketNameMessageThe specified bucket is not valid.
    非常感谢楼上各位的指点,问题已经解决了。

    我昨天把bucket的名字也写到了endpoint里面(PHP),例如 mytestbucket2016.oss-cn-hangzhou.aliyuncs.com, 后来发现bucket名称mytestbucket2016不应该(不可以)写在endpoint里面,把bucket名称在endpoint去掉就运行正常了。可能是之前我没有仔细看php的文档。

    再次谢谢楼上的各位!
    2015-12-07 17:59:40
    赞同 展开评论 打赏
  • Aliyun OSS 研发,专注存储高性能
    RePHPInvalidBucketNameMessageThe specified bucket is not valid.
    楼主的bucket名确实是没有问题的,我创建了一下是成功的,我现在删除了,楼主把bucket创建好再试一下(可以通过控制台创建,oss.aliyun.com),另外还请楼主把endpoint贴出来看看
    2015-12-07 10:08:11
    赞同 展开评论 打赏
  • 论坛总版主
    是不是bucket读写问题?
    2015-12-06 21:08:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载