2013-12-23 147 views
1

我試圖使用PHP從我的App Engine寫入Google雲存儲存儲桶中的文件。我是按照建立桶,並通過PHP訪問它的文檔:如何從Google App Engine PHP腳本連接到Google雲端存儲?

我已經添加了App Engine的服務帳戶名稱爲斗的所有者有問題,但是當我試圖運行類似以下內容:

$fp = fopen('gs://[bucket-name]/log/log.txt', 'a+'); 

我得到以下錯誤:

PHP Warning: fopen(gs://[bucket-name]/log.txt): failed to open stream: 
"\google\appengine\ext\cloud_storage_streams\CloudStorageStreamWrapper::stream_open" 
call failed in /[myfile.php] on line 33 

[bucket-name]只是一個佔位符,我使用的是正確的存儲桶名稱。我錯過了什麼嗎?

+0

FWIW,我也看了後@ http://stackoverflow.com/questions/20294785/how-to-use-google-cloud-storage-for- php?rq = 1並試圖找到替代的App Engine電子郵件標識符來賦予存儲桶的所有權,但沒有運氣。 –

回答

2

a+不是用於打開GCS文件的有效模式。 GCS中的對象不能附加到。他們只能被覆蓋。你可以在這裏找到有效的模式:

https://code.google.com/p/googleappengine/source/browse/trunk/python/php/sdk/google/appengine/ext/cloud_storage_streams/CloudStorageStreamWrapper.php?spec=svn404&r=400#56

+0

就是這樣。將寫入模式更改爲「w」可讓數據流正常工作。我現在遇到了'is_resource($ fp)'函數和Google雲端存儲的問題,它總是返回false,可能是相關的。當我有時間的時候我會玩。謝謝你的幫助! –

+1

沒問題,祝你好運! – jterrace

相關問題