【问题标题】:Creating a container in blob storage Azure - PHP在 blob 存储 Azure 中创建容器 - PHP
【发布时间】:2013-02-23 08:03:52
【问题描述】:

我正在关注本教程,关于操作 blob:

http://www.windowsazure.com/en-us/develop/php/how-to-guides/blob-service/

以下几点不清楚:

1)如何建立连接,示例中使用了这行代码:

For accessing a live service:

require_once 'vendor\autoload.php';

use WindowsAzure\Common\ServicesBuilder; use WindowsAzure\Blob\Models\CreateContainerOptions; use WindowsAzure\Blob\Models\PublicAccessType; use WindowsAzure\Common\ServiceException;

// Create blob REST proxy. $blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString)

如何设置连接字符串? - 我需要什么凭据才能访问 Blob 存储。

鉴于我也有我的 Microsoft 帐户详细信息。

2) 您将如何创建新的存储帐户

当您登录门户时,系统会为您设置一个密钥/帐户。如何通过php新建一个

谢谢

【问题讨论】:

    标签: php azure azure-storage


    【解决方案1】:

    在您引用的那个教程中,连接字符串格式显示在文章顶部附近:

    DefaultEndpointsProtocol=[http|https];AccountName=[yourAccount];AccountKey=[yourKey]

    现在您需要在门户中创建一个存储帐户。每个存储帐户都有一个名称 (yourAccount) 和一个密钥 (yourKey)。通过门户创建存储帐户后,您会看到它已列出。例如,我为此示例创建了dmakhome

    单击其名称,打开该存储帐户的仪表板视图:

    在屏幕最底部的黑色底边框中,您会看到一个图标,Manage Keys。点击它,然后你会看到一个主键和一个辅助键(你可以抓住任何一个):

    将密钥复制到剪贴板,并创建一个上述格式的 $connectionString,替换您的存储帐户名称和新复制的密钥。

    【讨论】:

    • 谢谢大卫。但是如何通过 php 创建一个存储容器而不用登录到门户网站并以这种方式进行设置呢?
    • 您只能通过门户创建存储帐户(如果您不想使用门户,您可以非常轻松地使用命令行工具 - 下载PowerShell 版本或跨平台版本 here )。创建 容器 需要您创建一个存储代理,就像上面的示例代码一样,然后调用 createContainer(),它返回一个引用该容器的对象。从那时起,您可以轻松地在该容器中使用 blob。
    • 还有……你引用的那个例子?向下滚动页面,您将看到一堆用于在存储帐户中创建容器的示例代码,以及各种容器权限。这实际上是一个非常彻底的演练。
    • 抱怨容器不存在,我的连接字符串如下:$connectionString = 'DefaultEndpointsProtocol=http;AccountName=;AccountKey=';
    【解决方案2】:
    <?php
    require_once 'vendor\autoload.php';
    
    use WindowsAzure\Common\ServicesBuilder;
    
    use WindowsAzure\Common\ServiceException;
    
    use WindowsAzure\Table\Models\Entity;
    
    use WindowsAzure\Table\Models\EdmType;
    
    
    $connectionString = 'DefaultEndpointsProtocol=http;AccountName=NAME;AccountKey=KEY';
    
    $tableRestProxy = ServicesBuilder::getInstance()->createTableService($connectionString);
    
    //Than try to create table or blob
    
    
    try {
    
     $tableRestProxy->createTable('newtasks');
    
    }
    catch(ServiceException $e){
    
      $code = $e->getCode();
    
      $error_message = $e->getMessage();
    
      echo $code.": ".$error_message."<br />";
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 2016-10-16
      • 2020-03-28
      • 2018-11-21
      • 2021-06-11
      • 2021-03-19
      • 2018-01-19
      • 1970-01-01
      • 2016-09-21
      相关资源
      最近更新 更多