PHPでブラウザからアップロードされたファイルをサーバ内に保存する場合、普通なら move_uploaded_file 関数を使うと思います。
では受け取ったファイルをサーバ内ではなくAmazonS3に保存したい場合はどうすればよいでしょうか?
AWS SDK for PHPを使えば簡単にできます。
$result = $s3client->putObject([
'Bucket' => $bucket,
'Key' => 'dir/to/picture.jpg',
'SourceFile' => $_FILES['picture']['tmp_name'],
'Metadata' => [
'Foo' => 'abc',
'Baz' => '123'
]
]);
move_uploaded_file
する代わりに、pubObject()のSourceFile
パラメータに $_FILES[フォーム項目名]['tmp_name']
を指定するのがポイントです。