在我的网络应用中,亚马逊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',
));
答案 0 :(得分:1)
答案 1 :(得分:0)
Body
参数表示您要上传的文件的实际内容。这可以是一串数据或使用fopen()
创建的资源。
SourceFile
参数允许您指定磁盘上文件的路径,SDK将负责打开文件以检索和发送其内容。
您选择使用哪一个与文件类型无关。
对于ContentType
,SDK会尝试猜测您提供的数据/文件的内容类型,如果无法确定内容类型,则只需指定它。