开发者社区 > 云存储 > 日志服务SLS > 正文

在使用日志服务sls,调用getlogs接口的时候,签名参数是如何定义的才能生成一个正确的签名?

在使用getlogs的api的时候,会一直返回一个签名不正确。 在我使用这个接口的时候总是会返回`401 Authorization Required

代码如下:

#签名 $parms['from'] = $from; $parms['to'] = $to; $parms['query'] = $query; $parms['type'] = 'log'; $parms['powerSql'] = false; $this->sign('GET','/logstores' . '/' . $logstore,$accessKeyId,$accessKey,$parms,array( "x-log-signaturemethod" => "hmac-sha1", "x-log-bodyrawsize" => "0", "x-log-apiversion" => "0.6.0" ),

#签名方法 function sign($method, $uri, $accessKeyId, $accessKeySecret, $params, $headers) { $contentLength = 0; $headers["x-log-apiversion"] = "0.6.0"; $headers["x-log-signaturemethod"] = "hmac-sha1"; // date setLocale(LC_TIME, 'en_US'); $date = gmdate('D, d M Y H:i:s \G\M\T', time()); $headers["Date"] = $date; $headers["Content-Length"] = (string)$contentLength; $contentType = isset($headers['Content-Type']) ? $headers['Content-Type'] : ''; $message = $method . "\n" . $contentType . "\n" . $date . "\n"; // header $filterHeaders = []; foreach ($headers as $key => $val) { if (str_starts_with($key, 'x-log-') || str_starts_with($key, 'x-acs-')) { $filterHeaders[$key] = $val; } } ksort($filterHeaders); foreach ($filterHeaders as $key => $val) { $message .= $key . ':' . $val . "\n"; } // uri and params $message .= $uri; if (sizeof($params) > 0) { $message .= '?'; }

    ksort($params);
    $sep = '';
    foreach ($params as $key => $val) {
        $message .= $sep . $key . '=' . $val;
        $sep = '&';
    }
    // signature & authorization
    $signature = base64_encode(hash_hmac('sha1', $message, $accessKeySecret, TRUE));
    $auth = 'LOG ' . $accessKeyId . ':' . $signature;
    $headers['Authorization'] = $auth;
    return $headers;
}

展开
收起
游客gp74t734d6fau 2023-02-18 17:14:37 703 0
1 条回答
写回答
取消 提交回答
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    楼主你好,有没有在 HTTP 请求的头部加入 Authorization 字段,该字段的值是根据阿里云签名机制计算出的签名字符串

    2023-02-18 19:21:47
    赞同 1 展开评论 打赏

日志服务 (Simple Log Service,简称 SLS) 是云原生观测分析平台,为 Log/Metric/Trace 等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、分析、告警可视化与投递功能,全面提升研发、运维、运营和安全等场景数字化能力。

相关产品

  • 日志服务
  • 相关电子书

    更多
    PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
    Kubernetes下日志实时采集、存储与计算实践 立即下载
    日志数据采集与分析对接 立即下载