Поэтому в настоящее время у меня загружена система загрузки, использующая AWS S3 для загрузки изображений.
Вот код:
//Upload image to S3 $s3 = Aws\S3\S3Client::factory(array('key' => /*mykey*/, 'secret' => /*myskey*/,)); try { $s3->putObject(array( 'Bucket' => "bucketname", 'Key' => $file_name, 'Body' => fopen(/*filelocation*/, 'r+') )); } catch(Exception $e) { //Error }
Это изображение может быть jpeg или png, и я хочу преобразовать его в png перед загрузкой. Для этого я использую:
//This is simplified, please don't warn about transparency, etc. $image = imagecreatetruecolor($width, $height); imagecopyresampled($image, $source, 0, 0, 0, 0, etc.);
Таким образом, у меня есть этот объект $image
в памяти.
Я хочу загрузить его на S3, не загружая его локально, а затем удаляю его локально; этот дополнительный шаг кажется бессмысленным. Но я не могу решить, как загрузить этот объект $ image напрямую.
Есть идеи, как это будет сделано? Я предположил, что fopen () создаст объект подобного типа imagecreatetruecolor (), но я пробовал передать объект $ image в него, и он не работает, тогда как если я открываю изображение локально с fopen ( ).