2012-03-15 16 views
2

erlangモジュールerlcloud_s3を使用してS3にファイルをアップロードしようとしています。何らかの理由で私は解決できませんでしたが動作しません。私は自分のコード(キーはもちろん削除されています)と、これを実行しようとするときに得られる応答を含めました。誰かが私が行方不明です何を教えてもらえます(または、実際にいくつかのドキュメントや例を持っているErlangのためのより良いAWSパッケージがある場合は?)elcloud_s3を使用してS3にファイルをアップロードする

-module(compose). 

-define('ACCESS_KEY',  "********************"). 
-define('SECRET_ACCESS_KEY', "****************************************"). 
-define('BUCKET',  "zacharykessin"). 

-export([upload/2, upload_file/2]). 

upload_file(Key, Path) ->  
    R = file:read_file(Path), 
    {ok, Binary} = R, 
    upload(Key, Binary). 


upload(Key, Value) -> 
    A = erlcloud_ec2:configure(?ACCESS_KEY, ?SECRET_ACCESS_KEY), 
    error_logger:info_msg("~p:~p Settng up AWS ~p to S3 ~n", 
       [?MODULE, ?LINE, A]), 
    R = erlcloud_s3:put_object(?BUCKET, Key, Value, [], [{"Content-type", "image/jpeg"}]), 

    error_logger:info_msg("~p:~p Uploaded File ~p to S3 ~n", 
       [?MODULE, ?LINE, R]), 
    {ok, R}. 


{noproc, 
    {gen_server,call, 
    [httpc_manager, 
    {request, 
    {request,undefined,<0.2.0>,0,https, 
     {"zacharykessin.s3.amazonaws.com",443}, 
     "/test",[],put, 
     {http_request_h,undefined,"keep-alive", 
     "Thu, 15 Mar 2012 14:22:14 GMT", 
     undefined,undefined,undefined,undefined, 
     undefined,undefined,undefined,undefined, 
     undefined,undefined, 
     ["AWS ","********************",58, 
    <<"1O6HYjq8RU8sqtD8oZd1T+bMNCE=">>], 
     undefined,undefined, 
     "zacharykessin.s3.amazonaws.com", 
     undefined,undefined,undefined,undefined, 
     undefined,undefined,undefined,undefined, 
     undefined,[],undefined,undefined,...}, 
     {"application/octet_stream", 
     <<255,216,255,224,0,16,74,70,73,70,0,1,2,1, 
    1,44,1,44,0,0,255,225,25,59,69,120,105,...>>}, 
           {http_options,"HTTP/1.1",infinity,true, 
            {essl,[]}, 
            undefined,false,infinity,false}, 
           "https://zacharykessin.s3.amazonaws.com/test", 
           [],none,[],1331821334636,undefined,undefined, 
           false}}, 
         infinity]}} 

答えて

4

あなたを実行する前に、

inets:start() 

どこかを実行することを確認しますコード。

エラーは、inetsライブラリアプリケーションの一部であるhttpc_managerとして登録されたプロセス(noproc)が存在しないことを意味します。

+0

ありがとう、私も "ssl:start()"を追加しなければならなかったが、それはそれをした。 –

関連する問題