九游平台/ 对象存储服务 obs/ sdk参考/ / / 获取对象属性
更新时间:2024-12-09 gmt 08:00

获取对象属性-九游平台

开发过程中,您有任何问题可以在github上,或者在中发帖求助。详细介绍了每个接口的参数和使用方法。

您可以通过obsclient.getobjectmetadata来获取对象属性,包括对象最后修改时间、版本号、对象自定义元数据等信息。以下代码展示了如何获取对象属性:
// 初始化配置参数
obsconfig config = new obsconfig();
config.endpoint = "https://your-endpoint";
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量accesskeyid和secretaccesskey。
// 您可以登录访问管理控制台获取访问密钥ak/sk,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
string accesskey= environment.getenvironmentvariable("accesskeyid", environmentvariabletarget.machine);
string secretkey= environment.getenvironmentvariable("secretaccesskey", environmentvariabletarget.machine);
// 创建obsclient实例
obsclient client = new obsclient(accesskey, secretkey, config);
try
{
    getobjectmetadatarequest request = new getobjectmetadatarequest();
    // 指定存储桶名称
    request.bucketname = "bucketname";
    // 指定对象,此处以 example/objectname 为例
    request.objectkey = "example/objectname";
    // 获取对象元数据
    using (getobjectmetadataresponse response = client.getobjectmetadata(request)) {
       console.writeline("get object metadata response: {0}", response.statuscode);
       // 获取对象的etag值
       console.writeline("object etag {0}:  ", response.etag);
       // 获取对象的版本号
       console.writeline("object versionid {0}:  ", response.versionid);
       // 获取对象数据的长度,单位是字节
       console.writeline("object contentlength {0}:  ", response.contentlength);
    }
}
catch (obsexception ex)
{
   console.writeline("message: {0}", ex.message);
}  
  • 由于 http 编码规范限制,无法发送非 ascii 码字符,sdk 会在接收响应时使用 url 解码规则解码响应头中的信息。如您的元数据存储的 content-disposition 为“attachment; filename="中文.txt"”,则 sdk 获取结果为“attachment; filename="中文.txt"”。

相关文档

网站地图