2014-01-14 3 views
1

매우 실망스러운 Bing Ads Api (SOAP)로 작업하고 있으며 필요한 SOAP 요청의 대부분을 성공적으로 수행했지만 마지막으로 나에게 수고.Ruby/Rails에서 파일 다운로드, 압축 풀기 및 구문 분석

광고 캠페인 통계 (클릭 수, 노출 수, 전환 수 등)를 얻으려는 팀에서 보고서를 생성하고 매개 변수를 전달한 다음 응답에서 reportID를 가져 와서 " zip 파일의 다운로드 URL을 생성하는 다른 SOAP 요청으로 보고서를 "폴링"합니다.

나는 성공적으로 수행 한 모든 위 (5mins 만 좋다) 다운로드 URL은 다음과 같습니다 : 그 URL에 갈 때

https://download.api.bingads.microsoft.com/ReportDownload/Download.aspx?q=k471B%2fhtf62jwhaelHhu0EqMSfWCvWSpOOBRu76%2bUC%2bgATLEobf%2bMYiVKX0CBOr52d95ViPXJeKbvAbnb%2bSK%2bGumYlSYQT80kTtt5waa5z%2fmbeXT%2fPFqde95DFR1%2b4yQgekl5T6gKipbMFcQJOn5aGYmtI1ALcREIwJRA%2bi%2b3jOE55Cl69TAzBOUWvB73NAKX6S0Y7zF%2bERnSu7TJnJfmqHopWihGtkeMzoqqwsJVgVDEKz84RrPPaDOs2pxg3qE%2bLSrEwu2cpa7bP%2f9t%2fjUVtIgiZMbMjzSf73VnAUSpYNz

, 그 시작은 우편 번호를 다운로드 일단 압축을 푼 파일에는 내가 만들고있는 웹 응용 프로그램의 사용자에게보고하기 위해 구문 분석해야하는 XML이 들어 있습니다.

제 질문은 - 응용 프로그램 내에서 일관되게 XML을 얻는 가장 좋은 방법은 무엇입니까? 이것은 사용자가 Bing 페이지를로드하거나 날짜 범위를 변경할 때마다 위의 모든 사항을 수행해야한다는 것을 고려하면 앱이 힘든 방식 인 것처럼 보이지만 그 방법 만 말해줍니다.

나는 아래로 향하고 있었던 경로는 HTTParty로 보고서를 가져온 다음 RubyZip으로 압축을 풀기위한 것이지만 (정의되지 않은 변환 오류 문제로 인해 실패했습니다) 어떻게해야할지 확실하지 않습니다. 데이터베이스에 저장 하시겠습니까 (일시적 일 수도 있음)?

도움을 주시면 감사하겠습니다.

답변

0

API를 사용하는 더 좋은 방법이 없다면 (db 또는 파일 시스템에서) 결과를 캐시하고 주기적으로 실행되는 레이크 작업을 사용하여 데이터를 새로 고칩니다. 이 경우 사용자가 즉시 새로 고침을 요청할 수있는 옵션을 추가하는 것이 좋습니다.

+0

응답 해 주셔서 감사합니다. 나는 당신이 Zip 파일의 결과를 바로 캐시한다는 것을 의미한다고 생각하니? 이 파일을 다운로드/압축 해제 할 수있는 좋은 방법을 제안 해 주시겠습니까? – macoughl

0

백그라운드 작업을 사용하여 zip 파일을 다운로드하고 처리하면 delayed_job 또는 resque와 같은 URL을 사용하여 작업을 시작할 수 있습니다.