2016-06-09 3 views
1

Xmliterator를 사용하여 XML 요소를 반복하고 simplexml_load_file()로 먼저로드하는 루틴이 있습니다. 웹 서버의 특정 폴더에 있으면 제대로 작동하지만 S3 버킷에서 직접 읽는 방법을 이해하는 데 어려움을 겪고 있습니다. 여기 PHP에서 SimpleXml을 AWS S3 버킷의 파일과 함께 사용하는 방법

웹 서버의 폴더 위치에서 읽는 코드입니다 : 지금은 S3 버킷에서 직접 읽으려면

$xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/uploads/' .  $_SESSION["username"] . "/" . $fnametp, 'SimpleXMLIterator'); 

, 어떤 것 라인 모양 (? 즉, 심지어 가장 좋은 방법입니다) 처럼? 는 여기에 내가 아무 소용이 시도 내용은 다음과 같습니다

$xml=simplexml_load_file($s3->getObjectUrl($config['s3']['bucket'], $fnametp), 'SimpleXMLIterator'); 

모든 S3 매개 변수 내 응용 프로그램의 다른 곳에서 이러한 매개 변수를 사용하여 정확하고 제대로 물통을 채우고 그것을 읽는 것. 나는 달성하려는 대상에 대해 잘못된 방법을 사용하고있을 가능성이 있지만이를 탐색하는 방법을 알 수 없습니다. 오류 메시지는 403/forbiden입니다. 적절한 권한을 갖고 있으며 파일이 공개 읽기로 업로드되었습니다.

감사합니다!

+0

해결 방법 : S3 파일 (키)의 경로에 오타가있었습니다. Simplexml 실제로 getObjectUrl 사용하여 S3 버킷에있는 파일을 가리키는 경우 작동합니다. –

+0

당신의 해결책을 찾은 것을 기쁘게 생각합니다. :) 미래에 다른 독자를 도울 것이라고 생각한다면 자신의 질문에 답변을 추가하는 것이 허용됩니다. 질문과 대답이 오타가 아니기 때문에 질문과 대답이 도움이되지 않는다고 생각하면 할 수있는 일은 전체 질문을 삭제하는 것입니다. 어느 쪽의 행동이라도 대답을 기다리고있는 것처럼 보이지 않고 앉아있을 수 있습니다. – IMSoP

+0

소리가 좋은데, 정직한 실수 였기 때문에 질문을 삭제할 것입니다. 의견을 보내 주셔서 감사합니다. –

답변

1

S3 파일 (키)의 경로에 오타가있었습니다. Simplexml 실제로 getObjectUrl 사용하여 S3 버킷에있는 파일을 가리키는 경우 작동합니다.