2013-10-05 4 views
0

Google App Engine에서 호스팅되고 내 text_files가 Google Cloud Storage에있는 내 애플리케이션에서 glob() 함수를 사용했습니다. 작동하지 않고 false를 반환합니다. 여기에 코드입니다 :Google App Engine (php) : glob() function

$links = glob("gs://bucket_name/folder/textfile_*"); 
if($links){ 
    echo "true \n"; 
    print_r($links); 
}else{ 
    echo "false"; 
} 

그리고 GCS에 내 파일은 다음과 같습니다

textfile_Ben.txt 
textfile_Sam.txt 
textfile_David.txt 

내가 http://php.net/manual/en/function.glob.php 확인하고는 말한다 :

:이 작동합니다 검사 된 파일 은 서버의 파일 시스템을 통해 액세스 할 수 있어야하므로 원격 파일에서 작동하지 않습니다.

내 응용 프로그램은 file_get_contents() 또는 file_put_contents()과 같은 다른 기능으로 정상적으로 작동합니다.

질문 : glob() 기능을 사용하기위한 모든 솔루션이 아니면 동일한 기능을 할 수있는 다른 방법이있다?

+1

글로브는 시스템 경로를 파일, URL이 작동하지 않습니다 가지고있다. 이 답변은 도움이 될 것입니다. http://stackoverflow.com/questions/6997887/glob-not-giving-me-any-results – abstr

답변

1

opendir/readdir을 사용하고 경로를 직접 필터링하십시오.

+0

내가 생각하는 유일한 방법입니다. 유일한 문제는 하위 디렉토리에서는 작동하지 않는다는 것입니다. 나는'opendir ("gs : // bucket_name /") 만 사용할 수 있습니다.'opendir ("gs : // bucket_name/folder /")' –

+0

하위 폴더를 opendir 할 수 있어야합니다. 작동하지 않는 경우 트래커에서 문제를 열 ​​수 있습니까? –

+0

"트래커에서 문제 열기"란 무엇을 의미하는지 모르겠습니다. 트래커는 어디에 있습니까? –

0

나는 해결책 :

$folder = "gs://bucket_name/folder"; 
foreach (new DirectoryIterator($folder) as $fileInfo) 
{ 
    echo $fileInfo->getFilename(); 
} 

환호