2012-10-11 47 views
1

我不知道這是可能的,所以我要尋找的建議。這是場景。使用GAS(Google Apps腳本)從慢速源獲取圖像文件,並將這些文件上傳/寫入/發佈到更快,更可擴展的其他位置,例如Google Developer Storage(GDS)。然後將這些文件從GDS提供到我的網站,而不是源文件。谷歌Apps腳本編寫獲取圖像文件谷歌開發者寄存,就像一個高速緩存

我假設使用UrlFetchApp.fetch(url)獲取圖像,使用getContent()獲取文件,但是我找不到如何發送/發佈/寫入文件到服務器/存儲器?

,同時期待通過文檔,我注意到「高速緩存服務」。也許這是我正在尋找的。但它似乎是內部使用,而不是通過URL將緩存的數據提供給網站。 我還注意到JDBC服務允許你寫入數據庫,所以我可以將圖像文件存儲在數據庫中,但似乎矯枉過正只是爲了緩存和重新提供靜態圖像。

乾杯

+0

的[緩存服務(https://developers.google.com/apps-script/class_cacheservice)不是你的情況的解決方案,因爲高速緩存的大小是相當有限的。它的大小最大爲幾兆字節。它也只存儲字符串,即有必要使用Base64或類似的東西編碼圖像(緩存字符串數據大小相對於二進制表示增加)。結果只有少量的圖像可以被緩存。 – megabyte1024

+0

謝謝,我不認爲緩存服務是解決方案,但需要澄清。可以GAS不POST或寫入服務器?我知道你可以寫信給GAS並獲得迴應。 請問這個任務最好的谷歌應用程序引擎進行處理,如果是的話,任何人都可以提供一些代碼(因爲我不是一個GAE用戶?) – user1541413

回答

0

您可以創建一個谷歌網站,與文件容器頁面,然後上傳圖片到容器中。一旦圖像上傳完成,就會有一次調用來檢索URL。通過公開網站,您可以託管圖像並從其他界面使用它們。下面是一段代碼,它可以做到這一點:

var file = your_blob; // this should be the content of the image 
    var err = 0; 
    var errText = ''; 
    var picUrl = ''; 

    // Uploads the image to the sites container page 
    var page = SitesApp.getPageByUrl('https://sites.google.com/a/yourdomain.com/yourpage'); 

    try { 
    var attachment = page.addHostedAttachment(file); 
    picUrl = attachment.getUrl(); 
    } catch (e) { 
    err = 1; 
    errText = e; 
    } 

    // picUrl now contains the url for the image.. 

希望這會有所幫助。 克里斯