如何使用 python 重命名 azure 存储资源管理器中已经存在的 blob

问题描述 投票:0回答:2

我想重命名 Azure 存储资源管理器中的 blob 文件。它位于特定 blob 容器的文件夹中。我正在使用 python.

我使用了这个代码。

sourceFileName = abc.xlsx
destinationFileName = xyz.xlsx
sourcePath = 'cloudops-resources/outputs/'
destinationPath = 'cloudops-resources/outputs/'

blob_url = blob_service.make_blob_url(sourcePath,sourceFileName)
blob_service.copy_blob(destinationPath, destinationFileName, blob_url)

但是 azure.storage.blob 中没有 blob_service 模块。我也尝试使用 BlockBlobService。但是无法导入。

我参考了this,我也尝试使用这些代码。

有人可以告诉我如何使用 python 重命名已经存在的 blob 吗?

python azure azure-blob-storage blob rename
2个回答
0
投票

我在我的环境中尝试并得到以下结果:

有人可以告诉我如何使用 python 重命名已经存在的 blob 吗?

最初,我在 azure blob 存储中有一个名为

sample1.xlsx
的 xlsx 文件。

传送门:

enter image description here

您可以使用以下代码重命名文件名。

代码:

from azure.storage.blob import BlobServiceClient

connection_string = "Your storage connection string"
container_name = "test3"
blob_name = "sample1.xlsx"
new_blob_name = "sample567.xlsx"

blob_service_client = BlobServiceClient.from_connection_string(connection_string)
blob_client = blob_service_client.get_blob_client(container_name, blob_name)
new_blob_client = blob_service_client.get_blob_client(container_name, new_blob_name)

# Copy the blob to the new name
new_blob_client.start_copy_from_url(blob_client.url)

# Delete the original blob
blob_client.delete_blob()
print("The blob is Renamed successfully:",{new_blob_name})

输出:

The blob is Renamed successfully: {'sample567.xlsx'}

enter image description here

传送门: enter image description here


0
投票

您可以使用适用于 Python 的 Azure 存储 SDK,使用 Python 在 Azure 存储资源管理器中重命名 blob 文件。下面是一个示例代码片段,用于重命名特定容器文件夹中的 blob 文件:

from azure.storage.blob import BlobServiceClient, BlobClient

# Replace with your connection string and blob details
connection_string = "your_connection_string"
container_name = "your_container_name"
blob_name = "original_blob_name"
new_blob_name = "new_blob_name"

# Create a BlobServiceClient object using the connection string
blob_service_client = BlobServiceClient.from_connection_string(connection_string)

# Get a BlobClient object for the original blob
blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)

# Get the original blob properties
blob_properties = blob_client.get_blob_properties()

# Copy the original blob to a new blob with the new name
new_blob_client = blob_service_client.get_blob_client(container=container_name, blob=new_blob_name)
new_blob_client.start_copy_from_url(blob_client.url)

# Delete the original blob
blob_client.delete_blob()

print("Blob renamed successfully")

此代码将首先使用提供的连接字符串创建一个 BlobServiceClient 对象,然后使用容器名称和原始 blob 名称为原始 blob 获取 BlobClient 对象。然后它将获取原始 blob 属性,并使用它们使用新 BlobClient 对象的 start_copy_from_url 方法将 blob 复制到具有新名称的新 blob。最后,它将使用原始 BlobClient 对象的 delete_blob 方法删除原始 blob。

© www.soinside.com 2019 - 2024. All rights reserved.