我正在尝试使用如下代码将文件上传到我的存储桶:
$s3 = new AmazonS3();
$bucket = 'host.domain.ext'; // My bucket name matches my host's CNAME
// Open a file resource
$file_resource = fopen('picture.jpg', 'r');
// Upload the file
$response = $s3->create_object($bucket, 'picture.jpg', array(
'fileUpload' => $file_resource,
'acl' => AmazonS3::ACL_PUBLIC,
'headers' => array(
'Cache-Control' => 'public, max-age=86400',
),
));
但是我收到“NoSuchBucket”错误,奇怪的是,当我查询我的 S3 帐户以检索存储桶列表时,我得到的名称与我用于上传host.domain.ext的名称完全相同。
我尝试创建一个名称中没有点的不同存储桶,它运行良好......是的,我的问题是我的存储桶名称,但我需要保持 FQDN 约定以便将其映射为 Internet 上的静态文件服务器。有谁知道在将存储桶名称发送到 API 之前是否可以对其进行任何转义以防止点崩溃?我已经尝试过正则表达式并得到了相同的结果。