如何使用PHP SDK将文件上传到名称中包含点的S3存储桶?

时间:2012-10-02 18:58:26

标签: php amazon-s3

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

$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约定,以便将其映射为静态文件服务器互联网。有没有人知道在将它发送到API以防止点崩溃之前我是否可以对我的存储桶名称进行任何转义?我已经尝试过正则表达式并得到了相同的结果。

1 个答案:

答案 0 :(得分:2)

我尝试使用相关AWS forum主题评论中建议的路径样式网址...

$s3 = new AmazonS3();
$s3->path_style = true;