2013-07-29 2 views
1
  • 내 aws acc 중 하나에 S3 버킷이 있습니다.
  • s3cmd 인터페이스를 사용하여 버킷에 파일을 업로드하고 있습니다.
  • s3fs를 사용하여 우분투 ec2 인스턴스에 s3 버킷을 마운트하고이를 성공적으로 수행하고 ec2 인스턴스를 나열 할 수 있습니다.아파치를 통해 액세스 할 수없는 마운트 된 s3 버킷 파일

    s3fs는 명령 - s3fs의 XXXXXX-ouse_cache =/tmp를/s3cache -oallow_other -opasswd_file =/etc/passwd에-s3fs -ourl = http://s3.amazonaws.com -odefault_acl = 공공 - 읽기 - 쓰기/MNT/XXXXXXXX

  • ec2에 apache2가 설치되었습니다. 문서 디렉토리를 경로 s3 path -/mnt/XXXXXXXX로 변경했습니다. 나는 성공적으로 같은 것을 설정하고 apache2 서비스를 재시작했다.

, 나는 내가 아파치를 사용하여 S3 파일에 액세스하려고 할 때, 나는 "당신은이 서버에 /temp/xxxxTesting.flv에 액세스 할 수있는 권한이 없습니다 금지."GET

사람이 문제를 도와 줄 수 있습니다. 이 문제에 대한 가능한 모든 이유. 나는 모든 제안을 시도했지만 모두 헛된 것입니다. Pls, 누군가 가이 문제를 해결하는 방법에 대한 안내?

+0

최신 버전의 s3fs - 1.71 – user1824140

답변

0

s3fs는 블록 장치 아니다. 커버 아래에 액세스하려고하면 파일을 임시 디렉토리에 복사합니다. 그것은 NFS처럼 작동하지 않습니다.

당신은과 s3fs와 S3에서 파일을 복사 할 수 있지만 s3fs에서 직접 응용 프로그램을 실행하지 않아야합니다.

+0

을 사용하고 있습니다. apache2를 사용하여 s3 파일을 제공하는 작업을 수행하는 방법에 대한 제안. 이것은 엄청나게 – user1824140

-1

새 프로젝트 인 RioFS (사용자 공간 S3 파일 시스템)를 보시려면 https://github.com/skoobe/riofs을 권하고 싶습니다. 이 프로젝트는 "s3fs"대안이며, "s3fs"와 비교하여 주요 이점은 단순성, 작업 속도 및 버그없는 코드입니다. 현재이 프로젝트는 "테스팅"상태이지만 꽤 오랫동안로드가 많은 파일 서버에서 실행되었습니다.

Apache 파일에 액세스하는 데 문제가 있으면 RioFS GitHub 페이지에서 티켓을 만드십시오!

희망이 있습니다.

1

당신의 물음표 키가 붙어있는 것 같습니다.

S3는 블록 장치가 아니며 파일 시스템이 아니며 s3fs 또는 다른 파일 시스템 에뮬레이터를 사용하는 파일은 절대로 최적의 성능을 제공하지 않습니다.

다행히, 더 간단한 해결책이있다.

내 이미지 파일은/var/내용/이미지에 있습니다.

my-web-site.com/images/any/path/here.jpg .jpeg 또는 .gif에서 파일을 가져 오는 경우 로컬 아파치 서버는/var/content/images/any/path/here.jpg는 실제로 로컬 하드 드라이브에있는 파일입니다. 그렇다면 아파치가 로컬 파일을 제공합니다.

로컬 파일이 아니라면 아파치는 HTTP를 사용하는 S3 버킷에서 파일 ([P]은 프록시)을 가져옵니다. 물론 이는 S3의 기본 인터페이스이고 아파치는 매우 효과적으로 처리합니다.

파일이 S3에 없으면 아파치는 거기에서 파일을 가져올 때 S3 버킷이 반환하는 오류 페이지를 반환합니다. 설정의 기본적으로 3 선에 완료 :

RewriteEngine on 
RewriteCond /var/content%{REQUEST_FILENAME} !-f 
RewriteRule ^/images/(.*[gif|jpe?g])$ http://my-bucket-name.s3-website-us-east-1.amazonaws.com/images/$1 [P] 

이 접근 방법, 나에게, s3fs와 동일한 기능을 해킹하는 것보다 훨씬 간단 보인다.

필자의 시스템 중 일부에서는 % {REQUEST_FILENAME} 이전에 물리적 경로를 추가해야하며 일부는 그렇지 않은 것에 유의하십시오. 나는 그것이 왜 그런지에 대한 구체적인 내용을 살펴 보지 않았지만 다른 환경에서는 다소 다른 설정이 필요할 수 있음을 알고 있습니다. 적절한 모듈을 사용할 수 있어야하고 예제의 정규식은 gif jpeg 및 jpg로 끝나는 파일 이름에서만 작동합니다.

+0

약 700-800MB 각각의 미디어 파일을 도울 것입니다. 그리고 나는 URL 인증 메커니즘을 원한다. 이 솔루션은 그러한 요구 사항에 맞습니까? – user1824140

+0

서명 된 URL을 사용하여 s3/cloudfront에서 직접 개인 파일을 제공 할 수 있습니다. – datasage

+0

cloudfront는 내가 이미 시도한 것입니다. 하지만 내 응용 프로그램은 클라우드 프론트에서 제공되는 파일에서 제어 권한을 잃어 버립니다. 내 앱에서 내리는 결정에 대한 서비스를 제어하고 싶습니다. – user1824140