我很抱歉提出这个基本问题。我在Azure环境中是新手。
我在Azure门户中将日志文件存储为.csv 我想查看此.csv文件而不下载它。 Azure已经提供了此文件的URL链接。但无法查看
这是Azure为我的.csv文件提供的链接:
https://xxxxxx.xfile.xcore.windows.net/cctvfeedfs/log/testcsv.csv
好,我确实有SAS签名,当我将该SAS签名与URL结合使用时,它将下载.csv文件。这样的示例:
https://xxxxxx.xfile.xcore.windows.net/cctvfeedfs/log/testcsv.csv?sv=2017-11-09&ss=bfqt&srt=sco&sp=rwdlacup&se=2099-10-04T09:06:59Z&st=2018-10-04T01:06:59Z&spr=https&sig=%2Fb%2BrssXtUP5V%2F9%2BSXzpSauyugpG%2BvXOfn9GqLfdf1EOUE%3D
但是实际上我不想下载,而只想查看它。 有什么可能的方法,这样我可以查看.csv中的内容而无需下载它?
请帮助。预先谢谢你!
答案 0 :(得分:0)
我该怎么办才能在线查看内容而无需下载?
如果您的容器不是公开的,则无法直接查看url的文件内容,否则文件将没有任何安全性。
因此,请参阅官方文档Secure access to an application's data in the cloud
和Using shared access signatures (SAS)
。然后,我们需要生成带有SAS签名的Blob网址以进行访问。
这是用于生成具有SAS签名的blob URL的示例Java代码。
SharedKeyCredentials credentials = new SharedKeyCredentials(accountName, accountKey);
ServiceSASSignatureValues values = new ServiceSASSignatureValues()
.withProtocol(SASProtocol.HTTPS_ONLY) // Users MUST use HTTPS (not HTTP).
.withExpiryTime(OffsetDateTime.now().plusDays(2)) // 2 days before expiration.
.withContainerName(containerName)
.withBlobName(blobName);
BlobSASPermission permission = new BlobSASPermission()
.withRead(true)
.withAdd(true)
.withWrite(true);
values.withPermissions(permission.toString());
SASQueryParameters serviceParams = values.generateSASQueryParameters(credentials);
String sasSign = serviceParams.encode();
String blobUrlWithSAS = String.format(Locale.ROOT, "https://%s.blob.core.windows.net/%s/%s%s",
accountName, containerName, blobName, sasSign);
您也可以在blob.toURL()
字符串的末尾添加SAS签名。
String blobUrlWithSAS = blob.toString()+sasSign;
关于SAS签名,您可以在ServiceSASSignatureValues Class
和AccountSASSignatureValues Class
中引用这些示例代码。
您可以在Azure Storage Explorer工具中使用csv文件检查ContentType。
如果将其格式更改为文本/纯文本,
顺便说一句,您可以在上传文件时设置内容类型。(请参见这种情况:Uploading blockblob and setting contenttype)