人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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



●質問者: DQNEO
●カテゴリ:コンピュータ インターネット
✍キーワード:.jpg Amazon AT DOES JPEG
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● どたん
●0ポイント

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

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


2 ● gfx
●100ポイント ベストアンサー

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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ