2012-03-15 6 views
2

erlang 모듈 erlcloud_s3을 사용하여 파일을 S3에 업로드하려고합니다. 어떤 이유로 작동하지 못했지만 작동하지 않습니다. 나는이 코드를 실행하려고 할 때마다 얻을 수있는 응답과 응답 코드를 포함시켰다. 누군가가 내가 놓친 거지 무엇을 말해 줄 수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() 

를 실행해야합니다 (또는 실제로 어떤 문서 또는 예?이 얼랑을위한 더 나은 AWS 패키지가 된 경우) 암호.

오류가 발생하면 inets 라이브러리 응용 프로그램의 일부인 httpc_manager으로 등록 된 프로세스 (noproc)가 없음을 의미합니다.

+0

감사합니다. 또한 "ssl : start()"를 추가해야했습니다.하지만 그렇게했습니다. –

관련 문제