python-3.x - 如何让 Azure 文件共享自动生成不存在的目录?

标签 python-3.x azure amazon-s3

使用 AWS S3,我可以将文件 test.png 上传到我喜欢的任何目录,无论它是否存在......因为 S3 会自动生成完整路径和目录。

例如,如果我上传到S3时,使用路径this/is/a/new/home/for/test.png,S3将创建目录thisisa、...并将 test.png 上传到正确的文件夹。

我正在迁移到 Azure,并且希望使用他们的文件存储。但是,似乎我必须手动创建每个目录...我显然可以通过检查文件夹是否存在来以编程方式完成它,如果不存在,则创建它...但是哇...为什么我要这么努力?

我确实尝试过:

file_service.create_file_from_path('testshare', 'some/long/path', 'test.png', 'path/to/local/location/of/test.png')

但是,这会提示该目录不存在...并且只有在我手动创建目录或将 some/long/path 替换为 None 时才有效.

是否可以只向 Azure 提供一个路径并让它创建目录?

最佳答案

Azure 文件非常模仿操作系统文件系统,因此为了将文件推送到目录中,该目录必须存在。这意味着如果您需要在嵌套目录结构中创建文件,则该目录结构必须存在。 Azure 文件服务不会为你创建该结构。

在您的场景中,更好的选择是使用 Azure Blob 存储。它非常模仿您上面提到的 Amazon S3 行为。您可以创建一个 Container(类似于 S3 中的 Bucket),然后上传一个名称类似于 this/is/a/new/home/for/test.png 的文件。

但是请注意,这些文件夹是 Blob 存储(与 S3 相同)中的虚拟文件夹,而不是真实的文件夹。本质上,用于保存 blob(类似于 S3 中的对象)的名称是 this/is/a/new/home/for/test.png

关于python-3.x - 如何让 Azure 文件共享自动生成不存在的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42999238/

相关文章:

amazon-s3 - Amazon S3 - 从标准转换到标准 IA 是否有任何处罚?

python - 如何在 PyCharm 中查找已知 Python 对象的类定义?

python - 通过 python ctypes 调用带有 char* 参数的 C 函数 python2 和 python3 的区别

python - Django prefetch_related 缓存不反射(reflect)更改

unix - 将文件从s3下载到STDOUT

java - 如何使用 Java 读取 AWS S3 文件?

python - Pandas - 将事件持续时间的每个小时转换为单独的行

azure - 如何通过图形 API 将用户管理员角色设置为 azure Active Directory 应用程序

Azure AD 元数据和用户信息不支持 CORS

azure - 如何将数组的内容存储在表存储中