查看文件是否存在
更新时间:2026-09-23
用户可以通过获取文件元信息的方式判断某个 Object 是否存在:若 Object 存在,get_object_meta_data 正常返回;若 Object 不存在,BOS 返回 NoSuchKey 错误,SDK 经重试逻辑封装后抛出 BceHttpClientError,其 last_error 为原始的 BceServerError。
运行以下示例前,请先参考初始化完成 BOS Client 初始化,并将示例中的 bucket_name、object_key 替换为实际值:
Python
1from baidubce.exception import BceHttpClientError, BceServerError
2
3try:
4 response = bos_client.get_object_meta_data(bucket_name, object_key)
5 print('object exists, meta: {}'.format(response.metadata))
6except BceHttpClientError as e:
7 # 重试后仍失败时抛出 BceHttpClientError,原始错误保存在 last_error 中
8 if isinstance(e.last_error, BceServerError) and e.last_error.code == 'NoSuchKey':
9 print('object does not exist')
10 else:
11 raise
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
bucket_name |
是 | Bucket 名称。 |
object_key |
是 | 待判断的 Object 名称(Key),不能为空或以 / 开头。 |
方法说明
| 方法 | 返回值 | 说明 |
|---|---|---|
bos_client.get_object_meta_data(bucket_name, key) |
BceResponse |
获取 Object 元信息。Object 不存在时抛出 BceHttpClientError。 |
说明:
get_object_meta_data底层发送 HTTP HEAD 请求,仅返回 Object 的元信息,不返回 Object 内容,适合用于存在性判断。BceHttpClientError的code与status_code属性也会记录服务端返回的错误码与 HTTP 状态码,Object 不存在时对应NoSuchKey与404。
评价此篇文章
