2012-06-05 47 views
0

使用imageshack API我可以將圖像上傳到ima​​geshack,但我必須使用API​​密鑰才能完成此操作。我可以創建一個POST表單,將圖像上傳到ima​​geshack,但是必須將密鑰放在表單中並公開API密鑰。如何將圖像上傳到ima​​geshack而不暴露我的API密鑰?如何在不公開我的API密鑰的情況下發出POST請求?

+0

您可以要求用戶在發送請求之前登錄。登錄成功後,您生成一個令牌(將其存儲在數據庫中),然後將其與請求一起發送。在服務器端,如果令牌存在,則處理請求,如果不存在,則發送一個說{:error =>「無效令牌」的json} – Sebastien

+0

我正在上傳到ima​​geshack,而不是我的服務器。那是麻煩的地方。如果我正在上傳到我的服務器,我可以遵循你的技術。 – dknight

回答

1

我認爲唯一正確地做到這一點的方法是圖像首先由用戶發佈到您的OWN應用程序。

然後在您的應用程序中,您將此POST內部重定向到ImageShack,您可以安全地使用您的API密鑰,而無需任何人看到它。

您可以使用像RestClient這樣簡單的東西從後端運行POST請求。您需要臨時將圖像存儲在服務器上,無論是在內存還是在磁盤上,以重新傳輸到ImageShack。

所以:

  1. 用戶發送帶有POST圖片到你的服務器
  2. 您的服務器從用戶POST請求接收圖像
  3. 你的服務器運行與此圖像ImageShack的使用到POST你API密鑰
  4. 來自步驟1的POST請求成功返回給用戶
+0

是的,我明白通過2步的方式做到這一點,我可以輕鬆做到這一點;但我想要一步一步做到這一點。在此之前,我實施了兩步法,我只是想確保根本沒有一步法。 – dknight

+0

好的,我明白了。不,我不認爲ImageShack API甚至有意用於1步過程。您將使用戶的瀏覽器停留在ImageShack服務器上的一個奇怪的API'頁面'上,該頁面僅用於後端的API。像PayPal一樣,例如使用加密的POST參數來實現類似1步過程的實現,但是IS似乎沒有提供類似的接口。 – Casper

相關問題