标签: azure-blob-storage

使用 python 从 Azure blob 读取 Json 文件?

我需要从 Azure 中的 blob 容器读取 JSON 文件,以便在 JSON 文件之上进行一些转换。我看过一些文档和 StackOverflow 答案,并开发了一个 python 代码来从 blob 中读取文件。

我已尝试使用 Stackoverflow 答案之一中的以下脚本来读取 JSON 文件,但出现以下错误

“TypeError:JSON 对象必须是 str、bytes 或字节数组,而不是 BytesIO”

我是 python 编程新手,所以不确定代码中的问题。我尝试使用 download_stream.content_as_text() 但文件读取文件时没有任何错误。

from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
from io import BytesIO
import requests
from pandas import json_normalize
import json

filename = "sample.json"

container_name="test"
constr = ""

blob_service_client = BlobServiceClient.from_connection_string(constr)
container_client=blob_service_client.get_container_client(container_name)
blob_client = container_client.get_blob_client(filename)
streamdownloader=blob_client.download_blob()

stream = BytesIO()
streamdownloader.download_to_stream(stream)
# with open(stream) as j:
#      contents = json.loads(j)
fileReader = json.loads(stream)

print(filereader)
Run Code Online (Sandbox Code Playgroud)

python json azure-blob-storage

8
推荐指数
1
解决办法
1万
查看次数

Azure 前门缓存 VS 用于 blob 存储的 Azure CDN

这是关于 Azure 前门缓存和 Azure CDN 的使用。我有一个 Azure 静态网站,将显示 Azure blob 存储中的数据(主要是办公文件和视频)。Blob 存储中的文件很少会更改。我正在寻找缓存这些文件的最佳方法和最便宜的方法,以便可以快速获取文件。

推荐或支持链接将会有所帮助。

提前致谢。

azure azure-cdn azure-blob-storage azure-front-door azure-static-web-app

8
推荐指数
1
解决办法
8888
查看次数

Windows Azure:无法将34 MB文件上载到Blob

我试图将一个34 MB的文件上传到blob,但它提示我一些错误

    XML Parsing Error: no element found
Location: http://127.0.0.1:83/Default.aspx
Line Number 1, Column 1:
Run Code Online (Sandbox Code Playgroud)

我该怎么办......如何解决它


我能够上传大小为500KB的小文件..但是我有一个大小为34 MB的文件要上传到我的blob容器中

我试过用它

protected void ButUpload_click(object sender, EventArgs e)
        {
            // store upladed file as a blob storage
            if (uplFileUpload.HasFile)
            {
                name = uplFileUpload.FileName;
                // get refernce to the cloud blob container
                CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");

                // set the name for the uploading files
                string UploadDocName = name;

                // get the blob reference and set the metadata properties
                CloudBlob blob = blobContainer.GetBlobReference(UploadDocName);
                blob.Metadata["FILETYPE"] = …
Run Code Online (Sandbox Code Playgroud)

blob azure azure-blob-storage

7
推荐指数
1
解决办法
2572
查看次数

如何为 azure blob 创建/设置新元数据并使用 Python API 获取元数据?

我有这样的元数据:

    Container: mycontainer
        Object: myblob
  Content Type: application/octet-stream Charset=UTF-8
Content Length: 26
          ETag: "0x8D18C1E18C0CF2C"
Run Code Online (Sandbox Code Playgroud)

我想添加更多元数据,例如:

     Meta Century: Nineteenth
       Meta Author: Mustafa
Run Code Online (Sandbox Code Playgroud)

添加后应该是:

     Container: azure
        Object: myblob
  Content Type: application/octet-stream Charset=UTF-8
Content Length: 26
          ETag: "0x8D18C1E18C0CF2C"
  Meta Century: Nineteenth
   Meta Author: Mustafa
Run Code Online (Sandbox Code Playgroud)

我需要设置获取这些元数据的函数?

python azure azure-storage azure-blob-storage

7
推荐指数
1
解决办法
7062
查看次数

通过 python API 列出 azure blob 存储中的虚拟文件夹

我正在阅读本教程,但我无法找到一种方法来列出容器下的所有(虚拟)文件夹而不获取所有文件。我的 500 个(虚拟)文件夹中有 26K 个文件。我只想获取文件夹列表,而不必等待几分钟即可获取list_blobs包含整个文件列表的输出。有没有办法做到这一点?或者至少告诉list_blobs不要深入到n容器下方的水平面?

python azure azure-blob-storage

7
推荐指数
2
解决办法
1万
查看次数

如何将zip文件上传到azure blob然后在那里解压缩

我有很多zip文件,里面有几个文件夹和50多个文件.如何将这些zip文件上传到azure blob,然后将其解压缩到那里.

解压缩服务器中的文件并将其中的文件逐个上传到azure blob将是一个繁琐的过程.

azure有没有简单的方法来实现这一点,还是有任何解决方法?

我在PHP中实现它.

php azure azure-storage-blobs azure-blob-storage

7
推荐指数
1
解决办法
6107
查看次数

从“azure.storage.blob”导入“BlobServiceClient”时出错

我有以下代码行:

from azure.storage.blob import BlobServiceClient
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

from azure.storage.blob import BlobServiceClient
ImportError: cannot import name 'BlobServiceClient' from 'azure.storage.blob' (/home/user-name/.local/lib/python3.7/site-packages/azure/storage/blob/__init__.py)
Run Code Online (Sandbox Code Playgroud)

我在 PythonAnywhere 和我的本地机器上都有这个错误。我正在关注这里的教程

我已经通读了 github 上的这篇文章,但无济于事。

有什么不见了?我试图实现的目标是当我有一个 URI 和一个共享密钥时访问容器中的 blob。

感谢任何帮助。

python azure azure-storage azure-storage-blobs azure-blob-storage

7
推荐指数
2
解决办法
2万
查看次数

将数百万个文件从根 AZStorage Blob 复制到子文件夹

我有多个 Azure 存储 blob 容器,每个容器都有超过 100 万个 JSON 文件,包括根。无法使用(不会令人震惊),因此尝试使用数据工厂使用文件中的时间戳将它们移动到多个文件夹,以创建 YYYY-MM-DD/HH 文件夹设置为分区系统。但是我尝试过的每种方法都因超时/项目限制过多而失败。需要打开每个文件,获取时间戳,并使用时间戳数据将文件移动到动态路径。想法?

更新:我能够解决这个问题,但我不会称之为“答案”,所以我只会更新问题。为了创建较小的集合,我将管道参数化为接受文件名通配符。然后我创建了另一个使用 0-9,az 数组的管道,将其用作数据集上的参数。蛮力解决方法......假设必须有更好的解决方案,但这现在有效。

azure azure-blob-storage azure-data-factory-2

7
推荐指数
1
解决办法
434
查看次数

Linux 系统上的 Azure 表/Blob/队列随机超时(k8s .net core 3 应用程序)

这是我的场景:

Microsoft.Azure.Storage.Blob 11.2.0
Microsoft.Azure.Storage.Queue 11.2.0
Micorosoft.Azure.Cosmos.Table 1.0.7
Run Code Online (Sandbox Code Playgroud)

我已经将很多代码从 Azure 函数转移到 Google k8s 和 Google Cloud,运行 Core .Net 应用程序,基本上使用 .net Standard 2.0 中内置的相同库,没有任何问题。

几天后,我注意到 Linux 系统中出现了不同的行为。与 Azure 服务(blob、表、队列)交互的调用很少会超时(子系统似乎失败了,我尝试了不同的重试策略,结果相同)。在 10,000 次调用中,我收到 10 到 50 个错误(或者在我更改超时之前很长的调用 180 秒)。这发生在所有 Azure 服务中:表、blob 和队列。

我尝试了不同的解决方案以找出原因:

  • 我每次调用都会实例化客户端(blobClient、TableClient..etc),或者回收同一个客户端但没有区别
  • 我更改了所有超时以处理此行为。我在 ServerTimeout 和 MaximumExecutionTime 上工作,并使用我的重试机制在顶部放置一个层,这样我就可以最大限度地减少错误。现在我“只有”几个 20 秒的调用(而不是例如 2/3 秒)。
  • 我尝试了在 Stackoverflow 上发现类似问题的所有解决方案:D ...但没有任何效果(目前)

在 azure 函数上运行相同的 dll 代码没有任何问题。

所以我得出的结论是,azure sdk 在内部使用的 http 客户端中有一些东西,这取决于您运行代码的操作系统。我想在几篇文章之后它可能是 Keep-Alive 标题,所以我尝试在我的组合根上:

ServicePointManager.SetTcpKeepAlive (true, 120000, 10000);
Run Code Online (Sandbox Code Playgroud)

但没有任何变化。

有什么想法或建议吗?...也许我走错了路,或者我错过了一些东西。

c# timeout azure azure-table-storage azure-blob-storage

7
推荐指数
1
解决办法
324
查看次数

如何用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage

在我的 asp.net mvc 应用程序中,我使用 Microsoft.WindowsAzure.Storage 8.0.1 将 blob 上传/下载到 azure 云容器。现在 NuGet 包管理器通知我 Microsoft.WindowsAzure.Storage 已弃用,我应该使用 Microsoft.Azure.Storage.Blob。

问题:

  1. 当我继续使用 Microsoft.WindowsAzure.Storage 8.0.1 时,我会遇到什么问题?
  2. 是否有任何推荐的方法可以用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage 8.0.1?
  3. 当我用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage 8.0.1 时,我是否必须重新编写处理上传/下载 blob 的代码?

任何帮助和建议将不胜感激。

c# azure asp.net-mvc-4 azure-blob-storage

7
推荐指数
1
解决办法
7263
查看次数