2013-11-15 135 views
0

我只是不能讓這個代碼工作。我從網址獲取圖片並將其存儲在臨時文件夾中,以便我可以將其上傳到Google雲端存儲中的存儲分區。這是一個CodeIgniter項目。該功能位於控制器內,能夠獲取圖像並將其存儲在項目根目錄的「tmp/entries」文件夾中。使用PHP將圖像上傳到Google Cloud Storage?

我錯過了什麼嗎?該文件僅上傳到Google雲端存儲。我去了我的本地App Engine dev服務器的Blobstore查看器,注意到有一個文件,但它是空的。我希望能夠從我的開發服務器上將這個文件上傳到Google的服務器。開發服務器似乎覆蓋了這個選項,並保存所有文件在本地。請幫忙。

public function get() 
{ 
    $filenameIn = 'http://upload.wikimedia.org/wikipedia/commons/1/16/HDRI_Sample_Scene_Balls_(JPEG-HDR).jpg'; 
    $filenameOut = FCPATH . '/tmp/entries/1.jpg'; 

    $contentOrFalseOnFailure = file_get_contents($filenameIn); 
    $byteCountOrFalseOnFailure = file_put_contents($filenameOut, $contentOrFalseOnFailure); 

    $options = [ "gs" => [ "Content-Type" => "image/jpeg" ]]; 
    $ctx = stream_context_create($options); 
    file_put_contents("gs://my-storage/entries/2.jpg", $file, 0, $ctx); 

    echo 'Saved the Image'; 
} 

回答

1

正如您所注意到的,開發應用程序服務器在本地模擬雲存儲。所以,這是預期的行爲 - 並且它可以讓您在不修改生產存儲的情況下進行測試。 如果您運行已部署的應用程序,您應該看到實際寫入您的GCS存儲區的寫入。

+0

預期的行爲是將文件完全上傳到開發服務器還是向您顯示一個空文件?你是否說如果該文件在App Engine服務器上運行,該文件將不會爲空? – Nag

相關問題