我想在我的blob中创建一些子目录。但它运作得不好
这是我的代码
protected void ButUpload_click(object sender, EventArgs e)
{
// store upladed file as a blob storage
if (uplFileUpload.HasFile)
{
name = uplFileUpload.FileName;
// get refernce to the cloud blob container
CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");
if (textbox.Text != "")
{
name = textbox.Text + "/" + name;
}
// set the name for the uploading files
string UploadDocName = name;
// get the blob reference and set the metadata properties
CloudBlockBlob blob = blobContainer.GetBlockBlobReference(UploadDocName);
blob.Metadata["FILETYPE"] = "text";
blob.Properties.ContentType = uplFileUpload.PostedFile.ContentType;
// upload the blob to the storage
blob.UploadFromStream(uplFileUpload.FileContent);
}
}
我所做的是,如果我必须创建子目录,我将在文本框中输入子目录的名称。
例如,如果我需要在子目录“files”中创建名为“test.txt”的文件 然后,我的textbox.text = files 和 uplFileUpload.FileName = test.txt
现在我将连接它们并上传到blob .. 但它运作不佳.. 我正好 https://test.core.windows.net/documents/files/
我没有得到整件事 我期待 https://test.core.windows.net/documents/files/test.txt
我做错了什么...... 如何在blob中创建子目录。
答案 0 :(得分:2)
您可以使用blobContainer.ListBlobs(new BlobRequestOptions {UseFlatBlobListing = true});获取你正在寻找的视图(忽略斜杠,只列出所有blob)。
答案 1 :(得分:0)
乍一看,这段代码看起来不错。我会逐步完成代码,并在调用GetBlockBlobReference()之前验证UploadDocName是否符合预期。
答案 2 :(得分:0)
执行GetBlockBlobReference()后检查blob.Uri?
顺便说一句,每次我使用这种代码时,我都会使用GetBlobReference()......我想知道是否有可能存在差异? (那会非常奇怪。)答案 3 :(得分:0)
它现在正在工作......这是我在显示中的错误blob的内容
protected void DisplayBlob_click(object sender, EventArgs e)
{
// get container referrence
CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");
// create list
IEnumerable<IListBlobItem> blobList = blobContainer.ListBlobs();
// display name on the page
string names = string.Empty;
foreach (IListBlobItem item in blobList)
{
names += item.Uri + "<br />";
}
LURI.Text = names;
}
仅显示当前目录,不会遍历子目录....
...谢谢