何が原因でしょうか?
【コード】
use Amazon::S3;
(中略)
my $filepath = 'a.jpg';
$bucket->add_key_filename( 'a.jpg', $filepath)
【エラー】
File does not exist: 500 Error while reading upload content a.jpg (4 remaining)
Bad file descriptor
at C:/Perl/site/lib/Amazon/S3.pm line 359
同じコードで、10KBほどのJPGファイルをアップしたら成功しました。
また、同じ方法でNet::Amazon::S3でやってみたら、600KBのファイルでも成功しました。
【環境】
WindowsXP Pro SP3/ActivePerl 5.10.0/Amazon::S3 0.41.2
Amazon::S3 0.41.2ということですが、現在Amazon::S3の最新版は0.45みたいですね。
http://beta.metacpan.org/release/Amazon-S3
最新版で試してみてはいかがでしょうか。
ただ、この最新版もリリースが2009年なのでちょっと古いです。Net::Amazon::S3やFurl::S3などが動くようであれば、そちらを使うようにしたほうがいいかもしれません。
アップロード元にファイルがないというエラーメッセージなので、
my $filepath = 'a.jpg'; $bucket->add_key_filename( 'a.jpg', $filepath)
この2行の中の $filepath の内容が間違っていると考えられます。
パス指定は謝っていませんか?
ご確認ください。
ファイルは確かに存在しています。
絶対パスで指定してして、存在チェックを入れてみました。
my $filepath = 'c:/Perl/a.jpg';
if (-f $filepath) {
print "file exist\n";
}
結果、"file exist"と表示されますが同じエラーが出ます。
a.jpgの代わりに、10KBのb.jpgでやってみたら成功しました。
モジュールをNet::Amazon::S3に差し替えるとa.jpgをアップロードできました。
したがって、パス指定は問題ないように思います。
Amazon::S3のバグでしょうか?
こういう場合は、CPANにバグ報告すればよいのでしょうか?
Amazon::S3 0.41.2ということですが、現在Amazon::S3の最新版は0.45みたいですね。
http://beta.metacpan.org/release/Amazon-S3
最新版で試してみてはいかがでしょうか。
ただ、この最新版もリリースが2009年なのでちょっと古いです。Net::Amazon::S3やFurl::S3などが動くようであれば、そちらを使うようにしたほうがいいかもしれません。
ありがとうございます!やってみます!
・・・・
【追記】
教えていただいたとおり、0.45でやってみたら成功しました!!
すごい!!
感動しました!
恥ずかしながら、metacpanなるものを初めて知りました。
Windowsで動かす必要があるので、Amazon::S3でがんばってみます。
どうもありがとうございました。
ありがとうございます!やってみます!
・・・・
【追記】
教えていただいたとおり、0.45でやってみたら成功しました!!
すごい!!
感動しました!
恥ずかしながら、metacpanなるものを初めて知りました。
Windowsで動かす必要があるので、Amazon::S3でがんばってみます。
どうもありがとうございました。