You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OCI存储桶访问代码报错:TypeError缺失bucket_name参数求助

解决OCI Object Storage list_objects调用的TypeError错误

错误原因

你遇到的TypeError是因为OCI Python SDK的ObjectStorageClient.list_objects()方法需要两个必填参数:namespace_name和bucket_name,而你只传递了一个参数。同时,该方法返回的是响应对象,直接遍历会出错。

修正后的代码

import oci

bucket_name = "BACKUP_W_STAGE"

# 初始化签名和客户端
signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner()
client = oci.object_storage.ObjectStorageClient(config={"region": "us-phoenix-1"}, signer=signer)

# 获取租户的对象存储命名空间
namespace = client.get_namespace().data

# 正确调用list_objects,传入命名空间和桶名
response = client.list_objects(namespace_name=namespace, bucket_name=bucket_name)

# 遍历返回的对象列表
for obj in response.data.objects:
    print(obj.name)

关键修正点

  • 添加命名空间参数:OCI对象存储的所有操作都需要指定租户的namespace_name,可以通过client.get_namespace().data获取。
  • 正确传递参数:list_objects()需要显式传递namespace_name和bucket_name两个关键字参数(关键字参数写法更清晰易读)。
  • 遍历正确的对象列表:list_objects()返回的是ListObjectsResponse对象,实际的对象列表在response.data.objects中,不能直接遍历响应对象本身。

内容的提问来源于stack exchange,提问作者Asit Dey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:34:54