使用 PHP 在 Microsoft Azure 上创建路径

Posted

技术标签:

【中文标题】使用 PHP 在 Microsoft Azure 上创建路径【英文标题】:Create Path at Microsoft Azure with PHP 【发布时间】:2018-12-04 04:33:07 【问题描述】:

我正在构建一个应用程序,我需要在其中使用 Azure 的 php SDK 动态创建一些目录。

我是用循环来做的,但我不确定这是否是正确的做法,所以这是我的代码;

我无法创建已经存在的路径,因此我必须逐级检查目录是否存在,然后输入并重复。

public function generateDirectory($path)

    $pathArray = explode("/", $path);

    $currentPath = "";
    try 
        foreach ($pathArray as $key => $slice) 
            $directories = $this->fileClient->listDirectoriesAndFiles("abraco", $currentPath)->getDirectories();
            $currentPath .= $slice . "/";
            $exists = false;
            foreach ($directories as $key => $directory) 
                if ($directory->getName() === $slice) 
                    $exists = true;
                    break;
                
            
            if (!$exists) 
                $this->fileClient->createDirectory("abraco", $currentPath);
            

        
        return true;
     catch (Exception $e) 
        return false;
    


它不应该有一种方法来创建带有子文件夹的完整路径吗?我认为这种方式不适合表演。

【问题讨论】:

【参考方案1】:

它不应该有一种方法来创建带有子文件夹的完整路径吗?我认为这种方式不适合表演。

我同意你的观点,有一种方法可以创建带有子文件夹的完整路径会更好。 但是目前,正如您提到的,如果我们要创建带有子文件夹的完整路径,我们需要逐级创建目录文件夹。

如果您在通过 PHP SDK 创建多级目录结构时使用 fiddler 捕获请求,您可以使用以下 Rest API 找到它

https://myaccount.file.core.windows.net/myshare/myparentdirectorypath/mydirectory?
restype=directory

更多信息请参考 Azure 文件存储Create directory API。

myparentdirectorypath 可选。要在其中创建 mydirectory 的父目录的路径。如果省略父目录路径,则在指定的共享中创建目录。

如果指定,父目录必须已经存在在共享中,然后才能创建 mydirectory。

【讨论】:

以上是关于使用 PHP 在 Microsoft Azure 上创建路径的主要内容,如果未能解决你的问题,请参考以下文章

适用于 PHP 的 Microsoft Azure 和 SAS

Azure 云服务 PHP Pear 包

带有 PHP 的 Azure 通知中心 REST API

Microsoft Azure系列之三 Microsoft Azure门户管理

使用 Java SDK v2 com.microsoft.azure.documentdb 的 Azure Cosmos 自动缩放

无法使用 Microsoft 示例在 Azure APIM 中生成 SAS