OSS中如何获取Request ID
概述
本文主要介绍OSS中如何获取Request ID和对应的日志信息。
详细信息
在OSS存储服务中,提供了Request ID作为关联各处日志信息的标识符,即为接收的每个请求分配唯一的服务器请求ID。在OSS对象存储中上传下载Object失败时,您可能需要提工单寻求解决方案,此时建议您将提交失败请求的Request ID也提交给阿里云技术支持,方便进行问题分析,下面是在不同场景下获取Request ID的几种方法:
下载或使用GetObject失败时获取Request ID
控制台日志获取
- 登录OSS控制台,在您使用GetObject下载失败后,进入指定Bukcet的管理页面。
- 依次单击左侧菜单栏的日志管理>实时查询。
- 按
Ctrl
+F
键,搜索request_id,获取Request ID。
在Linux系统中通过命令行获取
- 您可以先登录OSS控制台,获取Object的URL。
- 在Linux系统中,执行以下命令,获取HTTP响应头中的Request ID。
curl -voa "[$URL]"
说明:[$URL]为上一步获取的URL。
系统返回类似如下。
在控制台通过浏览器获取
- 进入浏览器后,按
F12
键,进入浏览器的开发者工具页面。 - 在开发者工具页面中,单击上方的Network。
- 登录OSS控制台,进入待下载Object的文件管理页面。
- 依次单击Object右侧对应的更多>下载。
- 在开发者工具页面中,搜索Object名称进行过滤,例如“tupian”。
说明:下载的Object对应的元素一般以Object名称开头。如果是上传Object的操作,则搜索当前资源的Endpint,各地域Endpoint可参见访问域名和数据中心。
- 单击tupian文件对应的元素,然后单击右侧区域上方的Headers。
- 在Response Headers区域中,获取Request ID信息。
通过SDK获取
以通过Python上传文件为例,获取当前操作Request ID的示例代码如下所示。
说明:如果出现“No module named oss2”报错,请参见使用Python操作OSS时出现“No module named oss2”报错。
# -*- coding: utf-8 -*- import oss2 auth = oss2.Auth('[$AccessKey_ID]', '[$AccessKey_Secret]') bucket = oss2.Bucket(auth, '[$Endpoint]', '[$Bucket_Name]') requestid = bucket.get_object_to_file('[$Object_Name]', '[$Local_File]').request_id print(requestid)
说明:
- [$AccessKey_ID]:您的AccessKey ID。
- [$AccessKey_Secret]:您的AccessKey Secret。
- [$Endpoint]:资源的访问域名,可参见访问域名和数据中心获取当前资源的endpoint。
- [$Bucket_Name]:您的Bucket名称。
- [$Object_Name]:您的Object真实路径,如果在名为abc的Bucket下有
001/a.txt
的Object,则填写“001/a.txt”。- [$Local_File]:存放下载资源的路径,如果下载资源需要存放到
/tmp
中,并将文件取名为local,则填写“/tmp/local”。
简单上传或使用PostObject失败时获取Request ID
控制台日志获取
- 登录OSS控制台,在您使用PostObject上传失败后,进入指定Bukcet的管理页面。
- 依次单击左侧菜单栏的日志管理>实时查询。
- 按
Ctrl
+F
键,搜索request_id,获取Request ID。
在控制台通过浏览器获取
- 进入浏览器后,按
F12
键,进入浏览器的开发者工具页面。 - 在开发者工具页面中,单击上方的Network。
- 登录OSS控制台,在Bucket中上传指定Object。
- 在开发者工具页面中,搜索当前资源的Endpoint进行过滤,各地域Endpoint可参见访问域名和数据中心。
- 单击过滤后的元素,然后单击右侧区域上方的Headers。
- 在Response Headers区域中,获取Request ID信息。
通过SDK获取
以通过Python上传文件为例,获取当前操作Request ID的示例代码如下所示。
说明:如果出现“No module named oss2”报错,请参见使用Python操作OSS时出现“No module named oss2”报错。
# -*- coding: utf-8 -*-
import oss2
auth = oss2.Auth('[$AccessKey_ID]', '[$AccessKey_Secret]')
bucket = oss2.Bucket(auth, '[$Endpoint]', '[$Bucket_Name]')
key = '[$Object_Name]'
requestid= bucket.put_object(key, '[$Object_Content]').request_id
print(requestid)
说明:[$Object_Content]为需要上传的字符串内容。
适用于
- 对象存储OSS