2011-05-16 3 views
2

간단한 Sinatra 응용 프로그램을 설정하여/URL로 전송 된 원시 POST 데이터를 캡처하여이 데이터를 파일 시스템에 형식으로 파일로 저장하고 싶습니다. YYYYMMDD-HHMMSS.json.Ruby Sinatra 간단한 응용 - 원시 POST 데이터

URL에 게시 할 데이터는 JSON 형식의 간단한 텍스트 데이터입니다.

이 간단한 Sinatra 앱을 설정하는 가장 좋은 방법은 무엇입니까? 원시 POST 데이터를 캡처하는 방법을 알지 못합니다.

UPDATE/코드 :이 같은

post '/' do 
    raw = request.env["rack.input"].read 
    n = DateTime.now 
    filename = n.strftime("%Y%m%d") + "T" + n.strftime("%H%M%S") #any way to include microseconds? 
    # write to file 
end 
+0

아래과 의견에 답변을 참조하십시오. 이 페이지의 의견에 언급 된 모든 방법을 시도했습니다. http://www.gittr.com/index.php/archive/getting-data-into-a-sinatra-application/ – BuddyJoe

+0

이러한 방법 중 어느 것도 작동하지 않았습니다. 이 문제를 어떻게 해결합니까? – BuddyJoe

답변

5

뭔가가 당신을 위해 일해야합니다

post "/" do 
    File.open("#{Time.now.strftime("%Y%m%d-%H%M%S")}.json", "w") do |f| 
    f.puts params["data"]  
    end 
end 
+0

와우. 질문을 수정하는 동안 그걸 알았습니다. 그 트릭을해야합니다. 밀리 초를 타임 스탬프에 포함시키는 방법은 무엇입니까? – BuddyJoe

+1

'Time.now.strftime ("% Y % m % d- % H % M % S % L")'은 (는) 밀리 초가됩니다. –

+0

Windows에서 1.92로 업그레이드해야했습니다. Windows에서 1.87 % L 옵션이 누락되었습니다. 나를 심하게 몰아 넣었다. – BuddyJoe