在我的Web API中,我使用以下代码创建blob:
var container = Client.GetContainerReference(DefaultContainer);
var blockBlob = container.GetBlockBlobReference(blobName);
blockBlob.UploadFromStream(fileStream);
blockBlob.Properties.ContentType = "video/mp4";
blockBlob.SetProperties();
当从外部下载文件时,我需要 ContentType标头值为video/mp4
。
但是,当我使用外部链接下载该文件时,Azure不会添加相应的ContentType。 (它实际上没有附加任何内容。)
那么,我该如何实现呢?
答案 0 :(得分:1)
在更新属性/元数据之前,您需要先获取属性/元数据,因此您的代码应为:
var container = Client.GetContainerReference(DefaultContainer);
var blockBlob = container.GetBlockBlobReference(blobName);
blockBlob.UploadFromStream(fileStream);
// Set the content type
blockBlob.FetchAttributes();
blockBlob.Properties.ContentType = "text/html";
blockBlob.SetProperties();
答案 1 :(得分:0)
如果未提供任何内容,则Azure Blob会降至“ application / octet-stream”的默认值。为了获得正确的模仿类型,这是我对烧瓶应用程序所做的:
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['file']
mime_type = f.content_type
print (mime_type)
print (type(f))
try:
#blob_service.create_blob_from_path(container, f, f.filename)
blob_service.create_blob_from_stream(container, f.filename, f,
content_settings=ContentSettings(content_type=mime_type))
mime_type已传递到ContentSettings,以获取上传到天蓝色blob的文件的当前mimetypes。