首页 > 解决方案 > PHP - 使用 cURL 发送 GET 请求

问题描述

我正在遵循 RackSpace API 中的文档来创建指向我们云文件中文件的临时 URL。看来我需要向特定 URL 发送 GET 请求,但是还有其他 2 个参数我不明白它们是如何传递的。我将 cURL 用于 GET 请求。

这是示例代码:

<?php
if ($argc != 5) {
    echo "Syntax: <method> <url> <seconds> <key>";
    echo "Example: GET https://storage101.dfw1.clouddrive.com/v1/" .
         "MossoCloudFS_12345678-9abc-def0-1234-56789abcdef0/" .
         "container/my_cat.jpg 60 my_shared_secret_key";
} else {
  $method = $argv[1];
  $url = $argv[2];
  $seconds = $argv[3];
  $key = $argv[4];
  $method = strtoupper($method);
  list($base_url, $object_path) =  split("/v1/", $url);
  $object_path = "/v1/$object_path";
  $seconds = (int)$seconds;
  $expires = (int)(time() + $seconds);
  $hmac_body = "$method\n$expires\n$object_path";
  $sig = hash_hmac("sha256", $hmac_body, $key);
  echo "$base_url$object_path?" .
       "temp_url_sig=$sig&temp_url_expires=$expires";
}
?>

它在该代码上方说这一行可能会有所帮助:“在以下示例中,将为 my_cat.jpg 对象生成一个可使用 60 秒的 TempURL。示例中的关键是 X-Account-Meta 的值-Temp-Url-Key。”

在此之前,我已经使用 POST 命令设置了“X-Account-Meta-Temp-Url-Key”标头。

基本上,我对如何通过 URL 传递“60”和“my_shared_secret_key”感到困惑。

这是完整的文档:https ://developer.rackspace.com/docs/cloud-files/v1/use-cases/public-access-to-your-cloud-files-account/#tempurl

标签: phpcurlget

解决方案


推荐阅读