Heroku アプリケーションで Amazon S3 バケットを使用できるようにしたいと考えています。
Heroku の前は、s3fsを使用してディレクトリを直接マウントしていました。Heroku ではこれが不可能になったので、おそらくアップロード (およびサイズ変更) スクリプトを引き続き機能させることによって、それらを「リンク」する他の方法はありますか?
Heroku アプリケーションで Amazon S3 バケットを使用できるようにしたいと考えています。
Heroku の前は、s3fsを使用してディレクトリを直接マウントしていました。Heroku ではこれが不可能になったので、おそらくアップロード (およびサイズ変更) スクリプトを引き続き機能させることによって、それらを「リンク」する他の方法はありますか?
スクリプトの動作によっては、スクリプトを少し変更する必要がある場合があります。
まず最初に、これを行ったことがないので、詳細が欠落している可能性があることを述べる必要がありますが、PHP、Heroku、およびS3での経験から、アップロードされたファイル(一時的に保存されるファイル)を受け入れるのと同じくらい簡単である必要がありますHerokuのサーバーのどこかにあるディレクトリ)、サイズを変更し、最後にS3にアップロードします。
アップロードワークフローがすでに機能している場合、唯一の違いは、ファイルをサーバー内のディレクトリに保存する代わりに(実際には、S3バケットへのシンボリックリンクのようなものでした)、次のようになります。 S3にアップロードします。このライブラリを使用すると、これを簡単に行うことができます:https ://github.com/tpyo/amazon-s3-php-class
このようなもの:
// Ink is expensive, let's write less
$file = $_FILES['uploadedfile']['tmp_name'];
$name = $_FILES['pictures']['name'];
// Resize the image
resize($file);
// Normally you would do this for storing the file locally
// move_uploaded_file($file, "$destinationdir/$name");
// Now you want to upload to S3
$s3 = new S3($awsAccessKey, $awsSecretKey);
$s3->putObject($s3->inputFile($file, false), $bucketName, $uploadName, S3::ACL_PUBLIC_READ)
アップロードの整理方法によっては、バケット名とファイル名の記録を保持することもできます。データベーステーブルでは、ファイル名を検索してバケット名を取得できます。両方が必要になるためです。ファイルを取得します。
それはまだ可能だと思います。Using AWS S3 to Store Static Assets and File Uploads をご覧になりましたか?