2017-11-22 9 views
0

PHP SDKを使用して、リモートURLからazureストレージにcsvをアップロードしようとしています。私はこのエラーが続いているようだ。私はカールを使用してSDKなしでそれを試して、私はまだ同じエラーが発生します。phpでWindows Azureストレージにcsvをアップロード

<?php 

require_once 'vendor/autoload.php'; 

use MicrosoftAzure\Storage\Common\ServicesBuilder; 
use MicrosoftAzure\Storage\Common\ServiceException; 
use MicrosoftAzure\Blob\Models\SetBlobPropertiesOptions; 


$key = base64_encode("abc"); 

$connectionString = "DefaultEndpointsProtocol=https;AccountName=username;AccountKey={$key}"; 

$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString); 

// Grab the csv from the remote url 
$csv = fopen("http://www.xxxxx.com/wp-cron.phpexport_hash=yyyyyy&export_id=1&action=get_data", "r"); 
$blobName = "test"; 

try { 
    // Upload the blob 
    $blobRestProxy->createBlockBlob("container", $blobName, $csv); 
} 
catch(ServiceException $e){ 

    // Errors 
    $code = $e->getCode(); 
    $errorMessage = $e->getMessage(); 
} 

カントはこのように見える:

`PUT resulted in a `403 Server failed to authenticate the request. 
Make sure the value of Authorization header is formed correctly including the signature.` response:  
<?xml version="1.0" encoding="utf-8"?><Error><Code>AuthenticationFailed</Code><Message>Server failed to authenticate (truncated...) 
in C:\wamp64\www\azurescript\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php on line 113 

は、ここで私が使用しています私のPHPコードです。いくつかのガイダンスがいいでしょう

答えて

0

エラーは403 auth failedに関連しています。メーカー番号:

  1. アカウント名とアカウントキーは有効で有効期限はありません。 Azure Storage Explorerでログオンするか、Azureポータルで確認して確認できます。
  2. Azure Storageから鍵を受け取った後でbase64_encode($ key)を再入力する必要はありません。 Azure Storageから受け取ったキーは、すでにbase64_encodedです。
0

認証の問題は、キーが正しく設定されていないことに関連しています。なぜそれをエンコードすることを決めたのか分かりませんが、ストレージアクセスキーはあなたに提示されたとおりに使用する必要があります。

実際、接続文字列全体が既に作成されています。あなた自身で構築する必要はありません。

関連する問題