首页 > 编程问答 >Python 中的 azure.ai.translation.document - 无法使用当前权限访问源文档位置

Python 中的 azure.ai.translation.document - 无法使用当前权限访问源文档位置

时间:2024-07-22 03:33:20浏览次数:16  
标签:python azure machine-translation

我在使用 Python 中的 azure.ai.translation.document 库时遇到问题。我已经在 Azure 中设置了翻译服务以及带有两个容器的 Blob 存储。我已使用“用户委托密钥”创建了 SAS 连接。一种用于源(读取/列表),一种用于目标(写入/列表)。
例如
enter image description here

我尝试运行 Python 程序,但源 blob 中的文件未转换并保存到目标 blob。| ||我收到此错误:

我使用此示例: azure.core.exceptions.HttpResponseError: (InvalidDocumentAccessLevel): Cannot access source document location with the current permissions.

https://learn.microsoft.com/en-us/azure/cognitive-services/translator/document-translation/client- sdks?tabs=python 我在企业环境中的 Windows 中使用 Thonny(因为我仍在尝试学习 Python)。我们的云代理可能出了问题。

import os from azure.core.credentials import AzureKeyCredential from azure.ai.translation.document import DocumentTranslationClient

key = "<your-key>" endpoint = "<your-custom-endpoint>" sourceUrl = "<your-container-sourceUrl>" targetUrl = "<your-container-targetUrl>"

client = DocumentTranslationClient(endpoint, AzureKeyCredential(key))

poller = client.begin_translation(sourceUrl, targetUrl, "fr")
result = poller.result()

print("Status: {}".format(poller.status()))
print("Created on: {}".format(poller.details.created_on))
print("Last updated on: {}".format(poller.details.last_updated_on))
print("Total number of translations on documents: {}".format(poller.details.documents_total_count))

print("\nOf total documents...")
print("{} failed".format(poller.details.documents_failed_count))
print("{} succeeded".format(poller.details.documents_succeeded_count))

for document in result:
    print("Document ID: {}".format(document.id))
    print("Document status: {}".format(document.status))
    if document.status == "Succeeded":
        print("Source document location: {}".format(document.source_document_url))
        print("Translated document location: {}".format(document.translated_document_url))
        print("Translated to language: {}\n".format(document.translated_to))
    else:
        print("Error Code: {}, Message: {}\n".format(document.error.code, document.error.message))

谢谢

Loz

Loz


出现“使用当前权限无法访问源文档位置”错误,表明你的 Python 应用程序无法使用你提供的 SAS URL 访问源 Blob 存储容器。以下是解决此问题需检查的事项:

1. 验证 SAS URL 权限:

  • 读取和列出权限: 请确保你的源 Blob 存储 SAS URL 拥有对该容器的“读取”和“列出”权限。如果没有这些权限,文档翻译服务将无法访问和列出要翻译的文档。
  • 容器级别或对象级别: 确认你的 SAS URL 是在容器级别还是对象级别生成的。容器级别的 SAS URL 将允许访问该容器中的所有 Blob,而对象级别的 SAS URL 将仅允许访问特定的 Blob。请确保你的 SAS URL 与你的需求一致。
  • 到期时间: 检查 SAS URL 是否已过期。过期了的 URL 将无法再访问你的 Blob 存储。

2. 验证 SAS URL 格式:

  • 正确的格式: 请确保你的 SAS URL 格式正确,并且包含所有必需的参数,如版本、签名、权限、服务、资源类型等。
  • URL 编码: 确保 SAS URL 中的任何特殊字符都经过了正确的 URL 编码。

3. 验证网络连接:

  • 云代理设置: 由于你提到了云代理,请确保代理设置允许你的应用程序连接到 Azure Blob 存储和 Azure 翻译服务。你可能需要配置代理例外或使用代理身份验证。
  • 防火墙规则: 检查是否存在任何阻止应用程序访问 Azure Blob 存储和 Azure 翻译服务的防火墙规则。

4. 代码和库版本:

  • 最新版本: 请确保你使用的是 azure.ai.translation.document 库的最新版本。你可以使用 pip install --upgrade azure-ai-translation-document 来更新你的库。
  • 代码: 仔细检查你的代码,确保你正确地传递了 SAS URL 到 begin_translation() 方法中。确认你的源和目标 URL 都指向了正确的容器。

调试技巧:

  • 打印 SAS URL: 在代码中打印你的 SAS URL,并确保它符合预期格式。
  • 手动测试 SAS URL: 尝试使用浏览器或工具(如 Azure Storage Explorer)使用 SAS URL 访问你的 Blob 存储容器。这可以帮助你确定问题是出在 SAS URL 本身还是你的应用程序代码上。
  • 启用日志记录: 启用 Azure 翻译服务的日志记录以获取有关错误的更多详细信息。

通过仔细检查这些方面并进行必要的调整,你应该能够解决“使用当前权限无法访问源文档位置”错误,并使你的文档翻译应用程序按预期工作。

标签:python,azure,machine-translation
From: 74303808

相关文章

  • 博文标题:探索Python中的元编程:装饰器的魔法
    引言在Python的世界里,装饰器(Decorators)是一种非常强大的特性,它允许程序员在不修改原始函数代码的情况下,为函数添加新的功能。这种机制不仅增强了代码的可读性和可维护性,还提供了高度的灵活性和扩展性。本文将深入探讨装饰器的基本概念、工作原理以及如何利用它们来简化和......
  • 使用Python 和 Selenium 抓取 酷狗 音乐专辑 附源码
    在这篇博客中,我将分享如何使用Python和Selenium抓取酷狗音乐网站上的歌曲信息。我们将使用BeautifulSoup解析HTML内容,并提取歌曲和专辑信息。准备工作首先,我们需要安装一些必要的库:pipinstallrequestsbeautifulsoup4selenium代码实现以下是完整的代码:importosi......
  • 基于Django+Python的网易新闻与评论舆情热点分析平台
    一、引言在信息爆炸的时代,人们每天面对海量的信息流,如何从中筛选出有价值的信息并进行深度分析变得尤为重要。基于Django+Python的网易新闻与评论舆情热点分析平台,旨在为用户提供一个高效的数据分析工具,帮助用户快速理解新闻趋势、情感倾向以及公众对特定事件的看法。通过自......
  • Python解释器详解及其应用场景
    Python解释器及其应用场景一、Python解释器概述Python解释器是Python程序运行的核心,它负责读取Python代码(即.py文件)并将其转换为机器语言,从而使计算机能够执行。简单来说,Python解释器就像是Python代码与计算机之间的翻译官,把Python代码翻译成计算机能懂的语言。Python解释器......
  • 利用【MATLAB】和【Python】进行【图与网络模型】的高级应用与分析】
    目录一、图与网络的基本概念1.无向图与有向图2.简单图、完全图、赋权图3.顶点的度4.子图与连通性5.图的矩阵表示MATLAB代码实例Python代码实例 二、最短路径问题1.最短路径问题的定义2.Dijkstra算法MATLAB代码实例Python代码实例三、最小生成树问题1.......
  • python_wholeweek1
    目录(day1-7)一周的学习1.计算机之编程什么是编程语言什么是编程为什么要编程2.计算机组成原理计算机五大组成CPU控制器运算器内存外存输入设备输出设备(I/O设备)32位和64位32位64位多核CPU硬盘工作原理机械硬盘工作原理固态硬盘工作原理3.计算机操作系统文件是什么?应用程序是什......
  • python模块与包
    python模块与包1.模块(是一个python文件)自定义模块:(1)新建一个py文件在同一个project里然后可以用import先导入再在main里使用main.py importcc.ad(2,5)c.py defad(s,y):print(s+y)导入模块中的方法会自动实行被调用模块里所有所有语句(2)导入不同模块同一方法......
  • Python网络数据可视化全攻略【方法与技巧详解】
    ......
  • Python爬虫实战案例(爬取文字)
    爬取豆瓣电影的数据首先打开"豆瓣电影Top250"这个网页:按F12,找到网络;向上拉动,找到名称栏中的第一个,单机打开;可以在标头里看到请求URL和请求方式,复制URL(需要用到);在表头的最下面有"User-Agent",也复制下来(也可以下载pipinstallfake_useragent库,用别人写好的UA)。定位......
  • Python项目|基于Python+Django实现购物商城系统
    作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待......