Cách tạo thư mục con trong vùng chứa blob
ví dụ,
trong vùng chứa blog của tôi http://veda.blob.core.windows.net/document/
Nếu tôi lưu trữ một số tệp, nó sẽ
Bây giờ, cách tạo một thư mục con
Để tôi có thể lưu trữ các tệp
Cách tạo thư mục con trong vùng chứa blob
ví dụ,
trong vùng chứa blog của tôi http://veda.blob.core.windows.net/document/
Nếu tôi lưu trữ một số tệp, nó sẽ
Bây giờ, cách tạo một thư mục con
Để tôi có thể lưu trữ các tệp
Câu trả lời:
Để thêm vào những gì Egon đã nói, chỉ cần tạo blog của bạn có tên "folder / 1.txt", và nó sẽ hoạt động. Không cần tạo thư mục.
Thực ra chỉ có một lớp container duy nhất. Bạn hầu như có thể tạo một "hệ thống tệp" giống như lưu trữ nhiều lớp, nhưng trên thực tế, mọi thứ sẽ nằm trong 1 lớp, nơi chứa nó.
Để tạo một "hệ thống tệp" ảo như lưu trữ, bạn có thể có các tên blob có chứa '/' để bạn có thể làm bất cứ điều gì bạn thích với cách bạn lưu trữ. Ngoài ra, điều tuyệt vời là bạn có thể tìm kiếm một đốm màu ở cấp độ ảo, bằng cách đưa ra một phần chuỗi, tối đa là '/'.
Hai thứ này, thêm '/' vào đường dẫn và một phần chuỗi để tìm kiếm, cùng nhau tạo ra một bộ lưu trữ "hệ thống tệp" ảo.
Có một bình luận của @ afr0 hỏi cách lọc trên các thư mục ..
Có hai cách sử dụng dấu GetDirectoryReference
hoặc lặp qua các đốm màu vùng chứa và kiểm tra loại. Đoạn mã dưới đây bằng 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);
}
}
đọc phần này để biết thêm chi tiết: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori
Nếu bạn sử dụng Microsoft Azure Storage Explorer , có nút "Thư mục mới" cho phép bạn tạo thư mục trong vùng chứa. Đây thực sự là một thư mục ảo:
Bạn không cần tạo thư mục con. Chỉ cần tạo vùng chứa blob và sử dụng tên tệp như tên tệp biến như mã dưới đây:
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
Như @Egon đã đề cập ở trên, không có quản lý thư mục thực trong bộ lưu trữ BLOB.
Bạn có thể đạt được một số tính năng của hệ thống tệp bằng cách sử dụng '/' trong tên tệp, nhưng điều này có nhiều hạn chế (ví dụ: điều gì xảy ra nếu bạn cần đổi tên "thư mục"?).
Theo nguyên tắc chung, tôi sẽ giữ các tệp của mình càng phẳng càng tốt trong một vùng chứa và để ứng dụng của tôi quản lý bất kỳ cấu trúc nào tôi muốn hiển thị cho người dùng cuối (ví dụ: quản lý cấu trúc thư mục lồng nhau trong cơ sở dữ liệu của tôi , có bản ghi cho từng tệp, tham chiếu BLOB bằng cách sử dụng tên vùng chứa và tên tệp).
Gặp sự cố tương tự khi dùng thử ứng dụng không máy chủ đầu tiên của Azure Sample .
Đây là thông tin về cách tôi đã giải quyết bằng cách xóa \ trước $ web.
Lưu ý: $ web container được tạo tự động khi bật trang web tĩnh. Chưa bao giờ thấy $ root container ở bất cứ đâu.
//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
Đây là cách tôi làm điều đó trong CoffeeScript trên Node.JS:
blobService.createBlockBlobFromText 'containerName', (path + '$$$.$$$'), '', (err, result)->
if err
console.log 'failed to create path', err
else
console.log 'created path', path, result
C#