我想使用 Java 将带有
BlobType="PageBlob"
的文件上传到 Azure 存储。
在命令行上,我可以通过简单地为 --blob-type PageBlob
命令指定 azcopy
参数来完成此操作。在Java中,我有:
BlobClient blobClient = containerClient.getBlobClient("test.bmp");
blobClient.uploadFromFile("data/test.bmp");
但是,它上传的是
BlockBlob
类型的文件。
我知道 getPageBlobClient() 方法,但它不提供将文件路径作为参数的
uploadFromFile()
方法,如上所示。我该怎么做?谢谢。
我知道 getPageBlobClient() 方法,但它不提供将文件路径作为参数的
方法,如上所示。我该怎么做?谢谢。uploadFromFile()
截至目前,还没有直接命令可以使用 Azure Java SDK 上传
page blob
。
根据此MS-Docs:
页面 blob 是 Azure 中的一种数据存储类型,旨在存储基于索引的稀疏数据结构(例如
OS
)以及 Virtual Machines
和 Databases
的数据磁盘。页 blob 由 512 字节的页组成,可以单独读取和写入,这使得它们非常适合存储需要随机访问的数据结构。例如,Azure SQL DB 使用页 blob 来存储其数据库。此外,页面 blob 通常用于需要基于范围更新的文件。
您可以使用 Put page REST API 请求,该请求用于创建页面 blob 并写入与 512 字节边界对齐的 blob。
要求:
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=page
您可以参考 Gaurav Mantri 的 SO-Thread 使用 Python 代码上传页面 blob。