上传目录时,将Metada和选项添加到S3对象

我正在使用->uploadDirectory()成功上传文件夹到S3。 几百个文件夹有100个或1000个图像,因此每个文件使用PutObject()几乎看起来没什么意义。 上传工作正常,并且一切顺利, 但ACL,StorageClass和元数据未包含在上传中。

根据http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#uploading-a-directory-to-a-bucket上的文档,应该完成以下代码这个。 它还被引用的putObject()函数记录下来。

除了目录和存储桶之外,我找不到任何此功能的示例,因此无法查看可能存在的问题。 任何想法为什么$options的数据被忽略?

$aws = Aws::factory('config.php');
$s3 = $aws->get('S3');
$dir = 'c:myfoldermyfiles';
$bucket = 'mybucket;
$keyPrefix = "ABC/myfiles/";
$options = array(
    'ACL' => 'public-read',
    'StorageClass' => 'REDUCED_REDUNDANCY',
    'Metadata'=> array(
        'MyVal1'=>'Something',
        'MyVal2'=>'Something else'
    )
);

$result = $s3->uploadDirectory($dir, $bucket, $keyPrefix, $options);

提供给putObjectcreateMultipartUploadparams应该在params选项中,而不是作为options数组中的顶级值提供。 尝试声明你的选项如下:

$options = array(
    'params' => array(
        'ACL' => 'public-read',
        'StorageClass' => 'REDUCED_REDUNDANCY',
        'Metadata'=> array(
            'MyVal1'=>'Something',
            'MyVal2'=>'Something else',
        ),
    ),
);
链接地址: http://www.djcxy.com/p/94621.html

上一篇: Adding Metada and Options to S3 Objects when uploading a directory

下一篇: image upload to amazon s3, need to be binary?