#php #amazon-web-services #amazon-s3
#php #amazon-веб-сервисы #amazon-s3
Вопрос:
В моем веб-приложении Amazon s3 использует загрузку изображений, для загрузки изображений используется следующий код. Но документы не загружаются с помощью этого ранее я использовал один и тот же код для загрузки обоих. Теперь я изменил параметр API SourceFile на Body, после чего документ работает нормально, но изображение в других случаях не работает нормально. изображения работают нормально. Я предоставил тело для загрузки документов и исходный файл для загрузки изображений. Как я могу использовать один и тот же 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',
));
Ответ №1:
Может указывать
'ContentType' => 'text/plain',
создает проблему для изображения. Также для изображения вам нужно будет предоставить исходный файл. Пожалуйста, проверьте документ aws php sdk
Ответ №2:
Body
Параметр представляет фактическое содержимое загружаемого файла. Это может быть строка данных или ресурс, созданный с fopen()
помощью .
SourceFile
Параметр позволяет указать путь к файлу на диске, а SDK позаботится об открытии файла для извлечения и отправки его содержимого.
Какой из них вы решите использовать, не имеет ничего общего с типом файла.
Например ContentType
, SDK попытается угадать тип содержимого предоставленных вами данных / файла, и вам нужно только указать его, если тип содержимого не может быть определен.