【问题标题】:Could somebody let me know in which case and which method should I use for upload / download blob?有人可以让我知道在哪种情况下以及我应该使用哪种方法来上传/下载 blob?
【发布时间】:2019-06-06 12:22:21
【问题描述】:

对于c#的azure blob storage sdk,有多种下载/上传blob的方法。

下载方式:DownloadTextDownloadToByteArrayDownloadToStreamDownloadToFile

上传方式:UploadTextUploadFromByteArrayUploadFromStreamUploadFromFile

如何选择这些方法?比如在下载/上传过程中文件很大时,某些方法会导致编码问题等吗?

谢谢。

【问题讨论】:

  • 你在上传什么?
  • @CaiusJard 喜欢 .txt 文件或其他一些文件。我想了解这些方法之间的区别。
  • 如果您要上传/下载文件,请使用 xxxxFile 方法
  • @CaiusJard,谢谢。我知道。我问这个问题更多的是关于这些方法之间的区别以及在哪种情况下我应该使用哪种方法。
  • 旅游问题很难回答,因为很明显我很难理解你为什么要问它。如果您想要一个文件或有一个文件,请使用文件 meThis。当然,您可以将文件读入内存然后使用字节数组,或者打开文件的流然后使用流..但是为什么要这样做?这是更多的代码和更多的麻烦。您的问题实际上似乎更多是关于何时应该在服务器上使用文件、流或字节数组,与 azure 无关。您使用现有的或转换的资源以适应资源限制。如果您的服务器有 512mb 的内存,请不要尝试读取...

标签: azure azure-storage azure-blob-storage


【解决方案1】:

您根据自己拥有的或想要的进行选择;这些东西是为了让你的生活更轻松。

如果您有/想要一个文件,请使用 File 方法(这样您就不必在上传文件之前将文件读入字节数组或附加流,或者您只需从 blob 下载文件到您的服务器)

如果您有/想要一个流,请使用流方法(假设您想通过 tcp 套接字将 blob 数据发送到客户端 - 没有必要将其写入服务器上的文件然后读取文件并发送它对于客户端,您应该只从 blob 打开一个流并从中读取并写入到客户端的 rxpnsocket。这样可以最大限度地减少服务器资源的使用)

如果您有/想要一个数组,请使用数组方法(也许您想以某种方式在内存中处理它)

有关更多信息,请参阅文档https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.storage.blob.cloudblockblob?view=azure-dotnet

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2021-07-20
    • 2019-06-13
    • 2015-11-20
    相关资源
    最近更新 更多