我访问Silverlight的Azure的文件存储和我需要上传/在存储的根目录创建一个crossdomain.xml文件:我可以在Azure文件存储中访问根文件夹吗?
https://[account].file.core.windows.net/crossdomain.xml
上看到这对BLOB很多例子,但我不能似乎为文件存储创建了一个$ root(不添加文件共享)。
Silverlight需要在根级别的crossdomain.xml才能使用Azure REST API。
任何想法?
我访问Silverlight的Azure的文件存储和我需要上传/在存储的根目录创建一个crossdomain.xml文件:我可以在Azure文件存储中访问根文件夹吗?
https://[account].file.core.windows.net/crossdomain.xml
上看到这对BLOB很多例子,但我不能似乎为文件存储创建了一个$ root(不添加文件共享)。
Silverlight需要在根级别的crossdomain.xml才能使用Azure REST API。
任何想法?
Azure文件存储follows the "share-directory" structure。我不知道Azure文件存储中的任何Root文件夹(我知道有关跨域和需求),我相信它无法使用文件存储完成。
您可以调用
CloudFileDirectory rootDir = share.getRootDirectoryReference()
返回共享的根目录,而不是文件存储之一。
为了能够实现你所需要的,我建议你切换到Blob存储如果没有需要文件存储的特定要求。
评论部分不允许多少字符。因此,我已经发布了这个答案,实际上这不是一个解决方案:)。
以下是我想分享的经验。
我试图添加一个跨域文件到根,但不能成功。代码如下:。
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(getConnectionString());
CloudFileClient client = storageAccount.CreateCloudFileClient();
CloudFileShare share = client.GetShareReference(shareName);
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
var crossDomainFile = share.GetRootDirectoryReference().GetFileReference("crossdomain.xml");
if (!crossDomainFile.Exists())
{
crossDomainFile.UploadText(getCrossDomainXmlContent());
Console.WriteLine("crossDomainFile.StorageUri:" + crossDomainFile.StorageUri.PrimaryUri);
}
share.GetRootDirectoryReference()GetFileReference( “crossdomain.xml的”),让你这个地址: https://[account].file.core.windows.net/<share名>的/crossdomain.xml。
对于Silverlight或Flash客户端,文件必须位于https://[account].file.core.windows.net/crossdomain.xml。
使用blob存储而不是文件是一个更好的选择,看来。
通过给出像https://[account].file.core.windows.net/crossdomain.xml这样的URI来创建云文件对象也是没有用的。当你调用UploadText方法(例如:crossDomainFile.UploadText(getCrossDomainXmlContent())时,你会得到400-错误请求错误
感谢Alex,通过获取对根的描述,可以添加跨域文件。 – Simon