azure 在上传完成之前,在“原始着陆区”着陆的视频开始被处理

balp4ylt  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(96)

所以我有一个问题,我们正在上传原始视频文件到blob存储使用Iperius备份,文件是20分钟长,在那里他们然后处理与人工智能程序
我们现在遇到了一个错误,视频在“原始着陆区”着陆,并开始在上传完成之前进行处理。
有人知道为什么会这样吗?
没有错误,上传最终完成。BlobCreated事件由Microsoft设计为在上传结束时触发,因此我们的使用与建议内联。是因为Iperius工具调用blob API的方式吗?
如果我们使用不同的工具(如azcopy或门户)将视频上传到同一容器,则BlobCreated触发器会正确触发。

gmol1639

gmol16391#

遇到一个错误与视频着陆在'原始着陆区',并开始处理之前,上传已经完成。

  • 大多数情况下,Iperius备份开始以较小的部分发送数据,而不是等待整个文件在启动传输之前上传。因此,BlobCreated事件可能会在第一个块上传后立即触发。

我已经在我的环境中尝试了,结果我在操作中没有遇到任何问题。


的数据

  • 探索由Blob存储或Iperius提供的其他事件触发器,它们可能更适合该用例。例如,在开始处理之前等待上载完成的自定义事件处理程序。
    Iperius日志:

下面是原始着陆区与成功上传的文件没有障碍。



正如你所说,使用不同的工具,如azcopy或直接通过门户网站上传更好。

  • 我尝试了一个python代码,它连接到blob容器,用于从本地到云存储的文件传输。
import os
import time
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

# Replace with your actual connection string and container name
connection_string = "yours_connection_string"
container_name = "test"

# Replace with the local path to your video file
local_file_path = "your_local_file_path_file.mp4"
file_name = os.path.basename(local_file_path)

def upload_file_to_blob():
    try:
        # Create a BlobServiceClient using the provided connection string
        blob_service_client = BlobServiceClient.from_connection_string(connection_string)

        # Create a container client to interact with the container
        container_client = blob_service_client.get_container_client(container_name)

        # Upload the file to the container as a blob
        blob_client = container_client.get_blob_client(file_name)
        with open(local_file_path, "rb") as data:
            blob_client.upload_blob(data)

        print(f"File '{file_name}' uploaded successfully.")
    except Exception as e:
        print(f"An error occurred: {e}")

if __name__ == "__main__":
    upload_file_to_blob()

字符串

输出:

容器:

相关问题