2

我正在尝试使用如下代码将文件上传到我的存储桶:

$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 之前是否可以对其进行任何转义以防止点崩溃?我已经尝试过正则表达式并得到了相同的结果。

4

1 回答 1

2

我会尝试使用相关AWS 论坛主题中的评论中建议的路径样式 url...

$s3 = new AmazonS3();
$s3->path_style = true;
于 2012-10-02T19:27:52.557 回答