第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JSON 密鑰的 PHP curl 訪問 GCP 存儲桶文件

使用 JSON 密鑰的 PHP curl 訪問 GCP 存儲桶文件

PHP
藍山帝景 2022-07-29 15:18:10
我是 GCP 的新手。我有一個將 CSV 文件輸出到 GCP 云存儲的功能。我正在嘗試使用 PHP 訪問該文件。到目前為止我做了什么:我使用 GCP IAM 創(chuàng)建了一個服務帳戶,并授予它作為存儲對象查看器的訪問權限。我還從 IAM 獲得了 json 密鑰。我需要在我的 PHP 腳本(托管在不同的 Web 服務器上)中使用哪些命令來使用 CURL 檢索文件以及如何使用 json 身份驗證密鑰?如果這在某處的文檔中,我提前道歉,我發(fā)現它非常復雜且令人不知所措。任何建議或方向表示贊賞。更新:根據下面的評論,這里是我找到的google-cloud-php github的鏈接。我不確定這是否是開始的最佳資源。
查看完整描述

2 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

您可以使用 php 的Cloud Storage 庫,更具體地說,如何下載對象。



查看完整回答
反對 回復 2022-07-29
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

首先,您必須獲得一個訪問令牌以進行身份驗證。為此,您需要 json 身份驗證密鑰。


此頁面對我有很大幫助: https ://www.it-swarm.dev/de/curl/wie-kann-man-mit-curl-eine-verbindung-zum-google-drive-api-herstellen/806069468 /


也許這個 PHP 代碼可以幫助你一點:


    function get_Google_accesstoken($scope,$credfile,$proxy,$timetoexpiration){

    #Developers Info at developers.google.com/identity/protocols/oauth2/service-account

        $GoogleApiKeyInfo=GoogleApiKeyInfo($credfile);

        $Header=array();

        $Header["alg"]="RS256";

        $Header["typ"]="JWT";

        $ClaimSet["iss"]=$GoogleApiKeyInfo["client_email"];

        $ClaimSet["scope"]=$scope;

        $ClaimSet["aud"]=$GoogleApiKeyInfo["token_uri"];

        $ClaimSet["iat"]=time();

        $ClaimSet["exp"]=$ClaimSet["iat"]+($timetoexpiration);

        $Jws=base64_encode(json_encode($Header)).".".base64_encode(json_encode($ClaimSet));

        $OpenSslRslts=openssl_sign($Jws,$Signature,$GoogleApiKeyInfo["private_key"],OPENSSL_ALGO_SHA256);

        $Jwt=$Jws.".".base64_encode($Signature);

        $SendVars=array();

        $SendVars["grant_type"]=("urn:ietf:params:oauth:grant-type:jwt-bearer");

        $SendVars["assertion"]=$Jwt;

        $SendVars=http_build_query($SendVars);



    

    $ch=curl_init();

    

    curl_setopt($ch, CURLOPT_URL, $GoogleApiKeyInfo["token_uri"]);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_PROXY, $proxy);

    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($ch, CURLOPT_POST, 1);

    curl_setopt($ch, CURLOPT_POSTFIELDS, $SendVars);

    $headers = array();

    $headers[] = 'Content-Type: application/x-www-form-urlencoded';

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $response = curl_exec($ch);

    if (curl_errno($ch)){

    echo 'Error:' . curl_error($ch);

    }

    curl_close($ch);

    $response=json_decode($response);

    return $response;


}

您可以在developers.google.com/identity/protocols/oauth2/scopes找到 $scope 的提示 $proxy 僅在您需要代理且 $timetoexpiration 沒有影響時使用,因為您的 accesstoken 始終有效 60 分鐘


查看完整回答
反對 回復 2022-07-29
  • 2 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號