2016-09-21 36 views
2

在跑道中處理來自第三方應用程序的文件是一件痛苦的事情。在跑道(建議)中上傳多個文件並提出一個請求

我正在製作的應用程序是Webform Podio提供的替代品。

在其中一些webforms中,我需要最終用戶上傳最多5或6個文件。

截至目前,你必須每個文件上傳到跑道2請求。 1請求上傳文件,另一個請求將文件附加到您創建的項目。

這是不斷打到PodioRateLimit。

什麼會更容易,是將所有文件編譯成1個數組,然後上傳並附加它。

如果已經可以,請提供文件。

回答

4

上傳文件仍然需要逐一進行,而跑道API不支持批量上傳文件。然而,你不需要每個文件上傳到Podio有2個請求。它可以是:[文件數量] +1請求。

因此,創建新的項目則可能是:

  1. 上傳文件1個
  2. 上傳文件2
  3. 上傳文件3
  4. 上傳文件4
  5. 創造新的與所有上傳項目文件

請求總數:5(文件數+ 1)

files = [<array of file names>] 
file_ids = [] 
files.each do |filename| 
    uploaded_file = Podio::FileAttachment.upload(File.open(filename), File.basename(filename)) 
    file_ids << uploaded_file.file_id 
end 
new_item = Podio::Item.create(<app_id>, 'fields' => {'title' => 'My title'}, 'file_ids' => file_ids) 

和用於更新現有的項目這幾乎是相同的,只需要調用Item.update代替Item.create的。
P.S.對不起,但例子是在Ruby中,而不是PHP

+0

那麼它肯定會將我的請求減少一半,但如上所述,這是一個建議podio實現批量上傳文件。不過謝謝你的建議。 – Kjaal

+1

好吧,跑道不是一個文件管理工具,但更廣泛的解決方案,所以批量文件上傳可能沒有優先級,但我會把你的請求傳遞給跑道團隊:)另外,如果它有用,請你接受答案。這將使未來的用戶更快地找到它。 –

相關問題