使用Azure中的时间戳访问blob文件

时间:2017-08-18 05:59:07

标签: azure blob azure-storage-blobs

我想访问由azure ml web服务生成的blob文件以及ilearner和csv文件。问题是文件是以guid作为名称自动生成的,没有回复提到该文件的存在。我知道该文件正在生成,因为我可以通过azure portal访问它。我想自动访问该文件,我唯一可以看到的可能是使用在同一个实例创建的其他文件的时间戳。是否有任何api或方法可以访问使用时间戳而不是文件名在特定实例创建的blob?

1 个答案:

答案 0 :(得分:2)

根据您的描述,我猜您使用了导出数据模块。 根据您的要求,强烈建议您使用Azure机器学习中的执行Python脚本替换导出数据,以便自定义blob文件名。

有关执行Python脚本的介绍,您可以参考官方文档here

请参考以下步骤实施:

第1步 :请使用Python virtualenv 创建Python独立运行环境,具体步骤请参考https://virtualenv.pypa.io/en/stable/userguide/,然后使用 pip install 命令用于下载Azure存储相关脚本。

enter image description here

Lib / site-packages 文件夹中的所有文件压缩成一个zip包(我称之为azure - storage - package)

第2步 :将zip包上传到Azure机器学习工作空间数据集。

enter image description here

具体步骤请参阅Technical Notes

成功后,您将在DataSet列表中看到上传的包,将其拖到Execute Python Script的第三个节点

enter image description here

第3步 :将python脚本中的blob文件名自定义为时间戳,您甚至可以添加GUID以确保文件名末尾的唯一性。 我提供了一段简单的代码:

import pandas as pd
from azure.storage.blob import BlockBlobService
import time


def azureml_main(dataframe1 = None, dataframe2 = None):
    myaccount= '****'
    mykey= '****'

    block_blob_service = BlockBlobService(account_name=myaccount, account_key=mykey)

    block_blob_service.create_blob_from_text('test', 'str(int(time.time()))+'.txt', 'upload image test')

    return dataframe1,

此外,您可以参考SO线程Access Azure blog storage from within an Azure ML experiment

希望它对你有所帮助。