使用Contentful Python API上传本地txt文件后后台无法查看问题排查
问题原因
- 你当前的代码仅完成了文件暂存上传、资产草稿创建两个步骤,缺少资产文件处理和资产发布两个核心环节,未发布的草稿资产默认不会在Contentful后台的默认资源列表中展示。
- 你没有对接口返回做异常校验,若资产ID重复、环境ID不匹配等问题触发报错也无法感知。
修复后完整代码
import time # 1. 上传本地文件到暂存区 with open('/Users/p2335/Documents/Work/files/input/test.txt', 'rb') as file: new_upload = client.uploads(space_id).create(file) # 2. 创建资产草稿 asset = client.assets(space_id, 'dev').create( 'ptn2', # 注意如果这个ID已存在会创建失败,第一次测试建议先不传ID让平台自动生成 { 'fields': { 'file': { 'en-US': { 'fileName': 'rds1.txt', 'contentType': 'text/plain', 'uploadFrom': new_upload.to_link().to_json() } } } } ) # 3. 触发资产文件处理(Contentful需要把暂存的上传文件转成正式资产资源) asset.process() # 4. 等待处理完成(避免处理未完成就发布报错,小文件等待2秒即可,大文件可以轮询状态) time.sleep(2) # 5. 发布资产,发布后才会在后台默认列表展示 asset.publish()
额外排查点
- 确认你在Contentful后台查看的环境和代码中传入的
dev环境一致,若后台默认查看的是master环境自然找不到资源。 - 若还是找不到,可以在后台资产列表的筛选条件中选择「草稿」状态,即可看到未发布的资产草稿,确认是否创建成功。
内容的提问来源于stack exchange,提问作者user3435903
相关产品推荐
相关产品推荐

