2013-04-23 1 views
0

Azure 가입시 여러 개의 정의 된 컨테이너가있는 Storage 계정이 있습니다. 현재 모든 코드는 연결 문자열에 대한 기본 액세스 키를 사용하여 컨테이너에 데이터를 읽고 씁니다. 모든 컨테이너는 비공개입니다. Storage 계정에 대한 읽기 전용 연결 문자열을 생성 할 수 있습니까? 아니면 각 컨테이너에 대해 정의해야합니까?Azure에서 컨테이너에 대한 읽기 전용 액세스 연결 문자열은 어떻게 정의합니까?

답변

1

현재 스토리지 계정에 대한 읽기 전용 연결 문자열을 만들 수 없습니다. 플랫폼 측면에서 유일한 옵션은 Shared Access Signatures/Container Level ACL이지만 각 BLOB 컨테이너마다 별도로 수행해야합니다. 다른 옵션은 사용자와 저장소 계정 간의 프록시 역할을하는 응용 프로그램을 만드는 것입니다. 저장소 계정에 대한 모든 요청은이 응용 프로그램을 통해 전달되며 여기에는 GET 이외의 모든 요청 (읽기 전용 동작)을 거부하는 읽기 전용 메커니즘을 통합 할 수 있습니다.

+1

감사합니다 ... 그건 내가 두려워했던 것입니다. 이 프로젝트는 파일 시스템의 폴더를 모방하기 위해> 20 개의 별도 컨테이너를 갖도록 설계되었습니다. 드로잉 보드로 돌아가 봅시다. Azure에게 개선 아이디어를 제출하십시오. –

+0

Re : "이 프로젝트는 20 가지 이상의 컨테이너를 갖도록 설계되었습니다. - 원한다면/a,/b,/c 등 대신에/data/a,/data를 사용할 수 있습니다/b,/data/c 등, 공유 액세스 서명 기능 Gaurav 언급을 통해/데이터에 대한 읽기 전용 액세스를 제공합니다. 이렇게하면 하나의 키가 20 개 이상의 모든 영역에 액세스하여 파일 시스템의 느낌을 유지할 수 있습니다. – codingoutloud

3

파일 시스템의 폴더를 모방하려는 경우 폴더를 나타내는> 20 개의 개별 컨테이너를 만드는 대신 단일 Blob 컨테이너 내에 가상 디렉터리를 만드는 것이 좋습니다. 디렉토리의 사용은 또 다른 stackoverflow 질문 인 Windows Azure: How to create sub directory in a blob containerAzure Storage Blobs Service Working with Directories에서 논의됩니다. CloudBlobDirectory Class은 blob의 blob 디렉토리를 나타내며, 구분 기호 문자로 지정됩니다. 모든 디렉토리를 단일 컨테이너에 배치하면 공용 액세스 (예 : 익명 읽기 액세스), 공유 액세스 서명 또는 Stored Access Policies 을 선택적으로 구성하여이 컨테이너의 모든 blob (하위 디렉토리의 blob 포함)에 대한 액세스를 한 번 설정할 수 있습니다. 컨테이너에 저장된 액세스 정책은 새로운 문자열을 재배포하지 않고 배포 한 SAS 문자열을 폐기, 확장 또는 업데이트 할 수 있기 때문에 유용 할 수 있습니다.