亚马逊s3图片上传失败

时间:2014-06-13 07:57:40

标签: php amazon-web-services amazon-s3

在我的网络应用中,亚马逊s3正在使用图片上传,下面的代码用于上传图片。但是文档没有使用此版本上传,我使用相同的代码进行上传。现在我将API参数 SourceFile 更改为 Body ,然后文档工作正常但图像不是在其他情况下图像工作正常。我为上传文件提供了正文,为上传图片提供了 SourceFile 。我如何为两者使用相同的api?

$result = $s3->putObject(array(
                'Bucket'       => Yii::app()->params['s3bucketName'],
                'Key'          => $fileName,
                //'Body'       => $fileName,
                'SourceFile'   => $fileName,
                'ContentType'  => 'text/plain',
                'ACL'          => 'public-read',
                'StorageClass' => 'REDUCED_REDUNDANCY',
        ));

2 个答案:

答案 0 :(得分:1)

可以指定

'ContentType'  => 'text/plain',

正在为图像创建问题。另外,对于图像,您需要提供SourceFile。请检查aws php sdk doc

答案 1 :(得分:0)

Body参数表示您要上传的文件的实际内容。这可以是一串数据或使用fopen()创建的资源。

SourceFile参数允许您指定磁盘上文件的路径,SDK将负责打开文件以检索和发送其内容。

您选择使用哪一个与文件类型无关。

对于ContentType,SDK会尝试猜测您提供的数据/文件的内容类型,如果无法确定内容类型,则只需指定它。