Perlで質問です。Amazon::S3モジュールで、600KBほどのJPEGファイルをAmazonS3にアップロードしようとしたら、エラーが出ました。

何が原因でしょうか?

【コード】
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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/06/14 03:32:14
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:gfx No.2

回答回数1ベストアンサー獲得回数1

ポイント100pt

Amazon::S3 0.41.2ということですが、現在Amazon::S3の最新版は0.45みたいですね。

http://beta.metacpan.org/release/Amazon-S3

最新版で試してみてはいかがでしょうか。

ただ、この最新版もリリースが2009年なのでちょっと古いです。Net::Amazon::S3やFurl::S3などが動くようであれば、そちらを使うようにしたほうがいいかもしれません。

id:DQNEO

ありがとうございます!やってみます!

・・・・

【追記】

教えていただいたとおり、0.45でやってみたら成功しました!!

すごい!!

感動しました!

恥ずかしながら、metacpanなるものを初めて知りました。


Windowsで動かす必要があるので、Amazon::S3でがんばってみます。

どうもありがとうございました。

2011/06/14 03:31:46

その他の回答1件)

id:dothan No.1

回答回数145ベストアンサー獲得回数25

アップロード元にファイルがないというエラーメッセージなので、

my $filepath = 'a.jpg';
$bucket->add_key_filename( 'a.jpg', $filepath)

この2行の中の $filepath の内容が間違っていると考えられます。

パス指定は謝っていませんか?

ご確認ください。

id:DQNEO

ファイルは確かに存在しています。

絶対パスで指定してして、存在チェックを入れてみました。

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にバグ報告すればよいのでしょうか?

2011/06/12 21:09:51
id:gfx No.2

回答回数1ベストアンサー獲得回数1ここでベストアンサー

ポイント100pt

Amazon::S3 0.41.2ということですが、現在Amazon::S3の最新版は0.45みたいですね。

http://beta.metacpan.org/release/Amazon-S3

最新版で試してみてはいかがでしょうか。

ただ、この最新版もリリースが2009年なのでちょっと古いです。Net::Amazon::S3やFurl::S3などが動くようであれば、そちらを使うようにしたほうがいいかもしれません。

id:DQNEO

ありがとうございます!やってみます!

・・・・

【追記】

教えていただいたとおり、0.45でやってみたら成功しました!!

すごい!!

感動しました!

恥ずかしながら、metacpanなるものを初めて知りました。


Windowsで動かす必要があるので、Amazon::S3でがんばってみます。

どうもありがとうございました。

2011/06/14 03:31:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません