Загрузка изображений Amazon s3 завершается ошибкой

#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 попытается угадать тип содержимого предоставленных вами данных / файла, и вам нужно только указать его, если тип содержимого не может быть определен.