使用PHP在Microsoft Azure上创建路径

时间:2018-06-25 14:45:00

标签: php azure azure-storage

我正在构建一个应用程序,我需要使用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 个答案:

答案 0 :(得分:0)

  

是否应该有一种使用子文件夹创建完整路径的方法?我认为这种方式不可行。

我同意您的观点,即有一种方法可以用子文件夹创建完整路径。 但是目前,正如您提到的那样,如果要使用子文件夹创建完整路径,则需要逐级创建目录文件夹。

如果在通过PHP SDK创建多级目录结构时使用提琴手捕获请求,则可以使用以下Rest API查找它

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

有关更多信息,请参考Azure文件存储Create directory API

  

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

     

如果已指定,则在创建mydirectory之前,共享中的父目录必须已经存在