Zamzar API下载失败

时间:2016-04-20 12:45:06

标签: python api request

无法使用python程序从zamzar api下载转换后的文件,如https://developers.zamzar.com/docs所示,但我正在使用代码和api密钥。它只显示错误代码:20。在此错误后面浪费了4小时,有人请。

import requests
from requests.auth import HTTPBasicAuth

file_id =291320
local_filename = 'afzal.txt'
api_key = 'my_key_of_zamzar_api'
endpoint = "https://sandbox.zamzar.com/v1/files/{}/content".format(file_id)

response = requests.get(endpoint, stream=True, auth=HTTPBasicAuth(api_key, ''))

try:
  with open(local_filename, 'wb') as f:
    for chunk in response.iter_content(chunk_size=1024):
      if chunk:
        f.write(chunk)
        f.flush()

    print("File downloaded")

except IOError:
  print("Error")

这是我用来下载转换文件的代码。

2 个答案:

答案 0 :(得分:2)

此代码可以轻松地将文件转换为不同的格式:

img {
    -webkit-box-shadow: 0 15px 10px #777;
    -moz-box-shadow: 0 15px 10px #777;
    box-shadow: 0 15px 10px #777;
}

希望有人好!。

答案 1 :(得分:2)

我是Zamzar API的首席开发人员。

因此,Zamzar API文档包含有关错误代码的部分(请参阅https://developers.zamzar.com/docs#section-Error_codes)。您错误的相关代码是:

  

{       “消息”:“API密钥丢失或无效”,       “代码”:20   }

这可能意味着要么你没有在所有指定API密钥,而是使用的API密钥对于您尝试下载的文件无效。似乎更有可能是后者,因为您的代码包含api_key变量。

查看您的代码,您可能已使用作业ID (291320)尝试下载文件,而实际上您应使用文件ID

每个转换作业都可以输出一个或多个转换后的文件,您需要指定要抓取的文件ID。您可以通过查询/jobs/ID并查看target_files数组来查看作业的所有已转换文件ID的列表。这在https://developers.zamzar.com/docs#section-Download_the_converted_file

的API文档中进行了概述

因此,如果您更改代码以使用作业的target_files数组中的文件ID ,那么您的下载就会生效。

对不起,你浪费了时间。显然,如果已达到S.O.我们的文档在解释这种区别方面做得不够好,所以我们将看看我们可以做些什么来使它们更清晰。

快乐转换!