簡體   English   中英

下載,解壓縮和解析Ruby / Rails中的文件

[英]Download, Unzip, and Parse a file in Ruby/Rails

我正在使用非常令人沮喪的Bing Ads Api(SOAP),並且雖然我已成功執行了我需要的大多數SOAP請求,但最后一個卻給我帶來了麻煩。

那里的團隊告訴我,要獲取廣告系列的統計信息(點擊次數,展示次數,轉化次數等),我需要請求生成報告(將參數傳遞給它),然后從響應中獲取reportID並“輪詢”報告與另一個SOAP請求一起生成一個zip文件的下載URL。

我已經成功完成了上述所有操作,下載網址(僅持續5分鍾)如下所示:

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

當我轉到該URL時,它開始下載一個zip文件,該文件一旦解壓縮,便包含了我需要解析以向正在創建的Web應用程序的用戶報告的XML。

我的問題是-在應用程序中一致獲取XML的最佳方法是什么? 對於應用程序而言,這似乎是一種艱巨的方法,因為考慮到每次用戶加載Bing頁面或更改日期范圍時都必須進行上述所有操作,但是他們告訴我這是唯一的方法。

我一直沿用的方法是使用HTTParty獲取報告,然后使用RubyZip解壓縮(由於未定義的轉換錯誤問題,此方法未成功),但是我不確定從那里開始該怎么做。 存儲在數據庫中(也許是暫時的)?

任何幫助將不勝感激。

如果沒有更好的方法來使用API​​,請緩存結果(在數據庫中或在文件系統中),並使用將定期運行的rake任務刷新數據。 如果這樣做,請考慮為用戶添加一個選項以請求立即刷新。

使用后台任務下載zip文件,然后對其進行處理,可以使用諸如delay_job或resque之類的URL來啟動作業。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM