2013-12-23 4 views
1

PHP를 사용하여 App Engine에서 Google Cloud Storage 버킷의 파일에 쓰려고합니다. 내가 버킷의 소유자로 응용 프로그램 엔진의 서비스 계정 이름을 추가 한Google App Engine PHP 스크립트에서 Google Cloud Storage에 어떻게 연결합니까?

: 나는 양동이를 설정하고 PHP을 통해 접속에 대한 설명서를 따랐습니다 나는 다음과 같은 오류가

$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 Cloud Storage에서 항상 false를 반환하는 데 문제가 있습니다. 아마도 관련이있을 것입니다. 나는 시간이있을 때 함께 놀거야. 당신의 도움을 주셔서 감사합니다! –

+1

문제 없습니다, 행운을 비네! – jterrace

관련 문제