Ich versuche dieses Beispiel zu testen, das ich here gefunden habe, so dass ich direkt auf der Clientseite hochladen kann, ohne den Benutzer mit Google Cloud Storage anmelden zu müssen.Der mitgelieferte Schlüsselparameter kann nicht mit Google APIs in einen privaten Schlüssel umgewandelt werden
Alle angegebenen Konstanten haben ihre korrekten Werte, und der Pfad ist korrekt und hat keinen leeren Inhalt.
Der Fehler Ich erhalte:
openssl_sign(): supplied key param cannot be coerced into a private key
Meine Funktion implementiert ist:
public static function storageURL($id, $method = 'GET', $duration = 10) {
$key = file_get_contents(self::KEY_FILE);
$pkey = openssl_get_privatekey($key, 'notasecret');
$expires = time() + $duration;
$content_type = ($method == 'PUT') ? 'application/x-www-form-urlencoded' : '';
$to_sign = ($method . "\n" .
/* Content-MD5 */ "\n" .
$content_type . "\n" .
$expires . "\n" .
'/'.self::BUCKET_NAME.'/' . $id);
$signature = '*Signature will go here*';
if (!openssl_sign($to_sign, $signature, $pkey, 'sha256'))
{
error_log('openssl_sign failed!');
$signature = '<failed>';
} else {
$signature = urlencode(base64_encode($signature));
}
return ('https://'.self::BUCKET_NAME.'.commondatastorage.googleapis.com/' .
$id .
'?GoogleAccessId=' . self::SERVICE_ACCOUNT_NAME .
'&Expires=' . $expires . '&Signature=' . $signature);
}
So kann ich die URL generieren gerade dies mit? – RyanDawkins
Was ist "das"? Wenn du den Google-API-Client meinst, dann ja – jterrace
Oh ... wo findest du die Dokumentation zur api-Bibliothek? – RyanDawkins