Windows Azure : Blob 컨테이너에서 하위 디렉터리를 만드는 방법
Blob 컨테이너에 하위 디렉터리를 만드는 방법
예를 들면
내 blob 컨테이너 http://veda.blob.core.windows.net/document/
일부 파일을 저장하면
이제 하위 디렉터리를 만드는 방법
파일을 저장할 수 있도록
Egon이 말한 내용을 추가하려면 "folder / 1.txt"라는 blob을 생성하면됩니다. 디렉토리를 만들 필요가 없습니다.
실제로 컨테이너의 단일 레이어 만 있습니다. 계층화 된 스토리지와 같은 "파일 시스템"을 가상으로 생성 할 수 있지만 실제로는 모든 것이 하나의 레이어, 즉 그 안에있는 컨테이너에 있습니다.
저장소와 같은 가상 "파일 시스템"을 만들려면 '/'가 포함 된 Blob 이름을 사용하여 저장하는 방식으로 원하는 작업을 수행 할 수 있습니다. 또한 가장 좋은 점은 '/'까지 부분 문자열을 제공하여 가상 수준에서 Blob을 검색 할 수 있다는 것입니다.
경로에 '/'를 추가하고 검색을위한 부분 문자열을 추가하는이 두 가지가 함께 가상 "파일 시스템"스토리지를 생성합니다.
@ afr0이 폴더 필터링 방법을 묻는 댓글이 있습니다.
GetDirectoryReference
컨테이너 Blob을 통해 또는 루프를 사용 하고 유형을 확인하는 두 가지 방법이 있습니다 . 아래 코드는 C #입니다.
CloudBlobContainer container = blobClient.GetContainerReference("photos");
//Method 1. grab a folder reference directly from the container
CloudBlobDirectory folder = container.GetDirectoryReference("directoryName");
//Method 2. Loop over container and grab folders.
foreach (IListBlobItem item in container.ListBlobs(null, false))
{
if (item.GetType() == typeof(CloudBlobDirectory))
{
// we know this is a sub directory now
CloudBlobDirectory subFolder = (CloudBlobDirectory)item;
Console.WriteLine("Directory: {0}", subFolder.Uri);
}
}
자세한 내용은 http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori 를 읽으십시오 .
Azure Portal에는 파일을 업로드하는 동안 아래 옵션이 있습니다.
당신이 사용하는 경우 마이크로 소프트 애저 저장소 탐색기를 , 당신이 컨테이너에 폴더를 만들 수있는 "새 폴더"버튼이 있습니다. 이것은 실제로 가상 폴더입니다.
@Egon이 위에서 언급했듯이 BLOB 저장소에는 실제 폴더 관리가 없습니다.
파일 이름에 '/'를 사용하여 파일 시스템의 일부 기능을 얻을 수 있지만 여기에는 많은 제한이 있습니다 (예 : "폴더"의 이름을 변경해야하는 경우 어떻게됩니까?).
일반적으로 컨테이너에서 파일 을 가능한 한 평평 하게 유지 하고 최종 사용자에게 노출하려는 모든 구조를 애플리케이션에서 관리하도록합니다 (예 : 내 데이터베이스에서 중첩 된 폴더 구조를 관리하고 각각에 대한 레코드가 있음). 파일, 컨테이너 이름 및 파일 이름을 사용하여 BLOB 참조).
하위 디렉터리를 만들 필요가 없습니다. 그냥 변수와 같은 덩어리 용기와 사용 파일 이름을 만들 파일 이름 코드를 아래와 같이를 :
string filename = "document/tech/user-guide.pdf";
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConnectionString);
CloudBlockBlob blob = cloudBlobContainer.GetBlockBlobReference(filename);
blob.StreamWriteSizeInBytes = 20 * 1024;
blob.UploadFromStream(fileStream); // fileStream is System.IO.Stream
Node.JS의 CoffeeScript에서 수행하는 방법은 다음과 같습니다.
blobService.createBlockBlobFromText 'containerName', (path + '$$$.$$$'), '', (err, result)->
if err
console.log 'failed to create path', err
else
console.log 'created path', path, result
Azure Sample first-serverless-app 을 시도하는 동안 비슷한 문제가 발생했습니다 .
다음은 $ web 앞의 \를 제거하여 해결 방법에 대한 정보입니다.
참고 : $ web 컨테이너는 정적 웹 사이트를 활성화하는 동안 자동으로 생성되었습니다. $ root 컨테이너는 어디에서도 본 적이 없습니다.
//getting Invalid URI error while following tutorial as-is
az storage blob upload-batch -s . -d \$web --account-name firststgaccount01
//Remove "\" @destination param
az storage blob upload-batch -s . -d $web --account-name firststgaccount01
'Nice programing' 카테고리의 다른 글
C ++에서 전역 상수 정의 (0) | 2020.10.21 |
---|---|
JavaScript 정규식 패턴은 변수와 연결 (0) | 2020.10.21 |
scipy.interpolate가 입력 범위를 초과하는 외삽 결과를 제공하도록 만드는 방법은 무엇입니까? (0) | 2020.10.20 |
프로그래밍 방식으로 홈 화면으로 이동 (0) | 2020.10.20 |
CoffeeScript에서 (객체의 var 키)? (0) | 2020.10.20 |