当前位置: 首页 > 知识库问答 >
问题:

将视频(mp4)上传到Azure Blob存储

皇甫高阳
2023-03-14

我正在使用数据移动库跟踪传输数据,以便将视频(mp4)从本地计算机上载到Azure Blob存储。

这是密码。

using System;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using Microsoft.Azure.Storage;
using Microsoft.Azure.Storage.Blob;
using Microsoft.Azure.Storage.DataMovement;
using System.Net;
using System.Text;
using System.IO;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace AzureUpload
{
    class Program
    {

        static void Main(string[] args)
        {
            try
            {
                CloudStorageAccount account = CloudStorageAccount.Parse("<<ConnectionString>>");
                ExecuteChoice(account);
            }
            catch (Exception e)
            {
                Console.ReadLine();
            }
            Console.ReadLine();
        }

        public static void ExecuteChoice(CloudStorageAccount account)
        {
            TransferLocalFileToAzureBlob(account).Wait();
        }

        public static string GetSourcePath()
        {
            return "E:\\SampleVideo.mp4";
        }

        public static CloudBlockBlob GetBlob(CloudStorageAccount account)
        {
            CloudBlobClient blobClient = account.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("<<Container>>");
            container.CreateIfNotExistsAsync().Wait();
            CloudBlockBlob blob = container.GetBlockBlobReference("MoD0604");
            blob.Properties.ContentType = "video/mp4"; // -- added this line to set ContentType as my video file is mp4
            return blob;
        }

        public static async Task TransferLocalFileToAzureBlob(CloudStorageAccount account)
        {
            string localFilePath = GetSourcePath();
            CloudBlockBlob blob = GetBlob(account);
            Console.WriteLine("\nTransfer started...");
            await TransferManager.UploadAsync(localFilePath, blob);
            Console.WriteLine("\nTransfer operation complete.");
        }
    }
}

链接中提供的示例在GetBlob方法中没有以下行

blob.Properties.ContentType = "video/mp4"; // -- added this line to set ContentType as my video file is mp4.

我试过使用ContentType和不使用ContentType。在这两种情况下,文件似乎都已上载到Blob。唯一的区别似乎是ContentType,如下图所示。

问题是,在尝试下载任何文件时,它导致了一个警告错误,之后两个文件都没有播放,并显示以下错误。

请让我知道我错过了什么。

共有2个答案

白彦
2023-03-14

考虑使用来自微软的新SDK来处理Azure BLB存储。br>安装Azure。存储Blobs NuGet套装。

        string connString = "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=yourAccountKey;EndpointSuffix=core.windows.net";

        BlobHttpHeaders blobHttpHeaders = new BlobHttpHeaders()
        {
            ContentType = "video/mp4"
        };

        BlobClient blobClient = new BlobClient(connString, "container1", "SampleVideo.mp4");
        blobClient.Upload("E:\\SampleVideo.mp4", blobHttpHeaders);
羊昊苍
2023-03-14

虽然头设置正确,但视窗不知道如何处理没有扩展名的文件,这就是为什么您不能打开它。如果您在下载Blob时追加正确的扩展名,它就会工作,因为您(很可能)有一个与特定文件类型相关联的应用程序。

 类似资料:
  • 我试图使用API接口将视频上传到S3存储桶,我遵循了预签名的URL过程,下面是我的lambda函数,它返回预签名的URL(它正确地返回了预签名的URL,看起来): 当我尝试上传一个像这样卷曲的mp4视频时,例如: curl-X PUT-F'data=@ch01_00000100055009702.mp4'https://redacted-bucket-instance.s3.amazonaws.c

  • 问题内容: 此代码有什么问题? 我在项目中有一个Raw文件(mp4视频文件), 当我这样做时,然后我从SDcard文件获取的文件不相同,因此无法加载视频:( 您是否有另一种自动将原始文件复制到的方法sdcard? 谢谢 问题答案: 如果使用InputStream进行读取,请使用OutputStream进行写入,即BufferedOutputStream包装的FileOutputStream。另外,

  • 我正在做一个react项目,很像一个社交媒体应用程序,用户可以上传图像或视频。我正在使用firebase存储来存储图像和视频。 我可以通过使用react react-firebase-file-uploader包完成图像上传,但由于我是web开发的新手,我很难找到为react上传视频的解决方案。 我已经搜索了整个互联网,但我找不到一个适当的解决方案来完成这些任务。 > 我要求只上传视频/视频,并希

  • 我正在尝试将MP3音频文件混合到MP4视频中。经过数小时的搜索,我得出结论,我需要将MP3文件转换为AAC格式,该格式适合MP4容器。 在android中为视频添加音频 但是我找不到任何关于如何将MP3文件转换为AAC格式的留档。那么你对如何将MP3音频转换为AAC音频有什么建议吗? 此外,我还需要在最终视频中的特定时间插入几段音频。

  • 我曾尝试使用GStreamer管道将mp4视频转换为avi视频,但它是在没有声音的情况下转换的 gst launch-t-v filesrc location=源。mp4!qtdemux!ffdec\U h264!视频/x-raw-yuv!avimux!filesink location=结果yuv。avi公司

  • 接口说明 上传视频文件 API地址 POST /api/marker/1.0.0/uploadVideo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dataGuid string form 是 场景GUID file string form 是 视频文件 响应字段说明 参数 类型 说明 mp4UploadPath String 视频文件上传地址 响应成功示例 { "