是否可以使用 Azure 存储在目录中列出文件
Is it possible to list files in a dir with Azure storages
我使用 Django 和 django-storages[azure] 作为后端。
但是我找不到列出文件的目录,而是必须使用这样的片段:
block_blob_service.list_blobs(container_name='media', prefix=folderPath)]
这不起作用:
listdir(absoluteFolderPath)
在storages/backend/azure_storage.py中我找到了这部分:
def listdir(self, path=''):
"""
Return directories and files for a given path.
Leave the path empty to list the root.
Order of dirs and files is undefined.
"""
files = []
dirs = set()
for name in self.list_all(path):
n = name[len(path):]
if '/' in n:
dirs.add(n.split('/', 1)[0])
else:
files.append(n)
return list(dirs), files
但是我该如何使用呢?
问候
克里斯托弗.
假设您已设置 DEFAULT_FILE_STORAGE you could access it through storage
from django.core.files.storage import default_storage
dirs = default_storage.listdir(absoluteFolderPath)
正在运行,谢谢,但我得到了一个列表:
[[], ['ANG_65096745.pdf', 'airpods-gave.png', 'miniDP_HDMI.png', 'surface-book-2-13-in-laptop-mode-device-render.jpg', 'surface_4_color.png']]
如何在 for 循环中使用它?我做了这个:
files = default_storage.listdir(path=folderPath)
for file in files:
print(file)
但它不会逐行打印我写的输出
API for listdir
returns 两个列表的元组,第一个是给定路径中的目录(文件夹),第二个是文件。
解压缩的正确方法是在调用期间分配两个变量。
示例:
from django.core.files.storage import default_storage
# list the contents of the root directory of the storage
directories, files = default_storage.listdir('')
# list the contents of a directory named 'images' inside 'media'
directories, files = default_storage.listdir('media/images')
# now you can iterate through just the files
for filename in files:
print(filename)
我将 django-storages 与 S3 一起使用,但 Azure 看起来工作起来完全一样。
我使用 Django 和 django-storages[azure] 作为后端。 但是我找不到列出文件的目录,而是必须使用这样的片段:
block_blob_service.list_blobs(container_name='media', prefix=folderPath)]
这不起作用:
listdir(absoluteFolderPath)
在storages/backend/azure_storage.py中我找到了这部分:
def listdir(self, path=''):
"""
Return directories and files for a given path.
Leave the path empty to list the root.
Order of dirs and files is undefined.
"""
files = []
dirs = set()
for name in self.list_all(path):
n = name[len(path):]
if '/' in n:
dirs.add(n.split('/', 1)[0])
else:
files.append(n)
return list(dirs), files
但是我该如何使用呢?
问候 克里斯托弗.
假设您已设置 DEFAULT_FILE_STORAGE you could access it through storage
from django.core.files.storage import default_storage
dirs = default_storage.listdir(absoluteFolderPath)
正在运行,谢谢,但我得到了一个列表:
[[], ['ANG_65096745.pdf', 'airpods-gave.png', 'miniDP_HDMI.png', 'surface-book-2-13-in-laptop-mode-device-render.jpg', 'surface_4_color.png']]
如何在 for 循环中使用它?我做了这个:
files = default_storage.listdir(path=folderPath)
for file in files:
print(file)
但它不会逐行打印我写的输出
API for listdir
returns 两个列表的元组,第一个是给定路径中的目录(文件夹),第二个是文件。
解压缩的正确方法是在调用期间分配两个变量。
示例:
from django.core.files.storage import default_storage
# list the contents of the root directory of the storage
directories, files = default_storage.listdir('')
# list the contents of a directory named 'images' inside 'media'
directories, files = default_storage.listdir('media/images')
# now you can iterate through just the files
for filename in files:
print(filename)
我将 django-storages 与 S3 一起使用,但 Azure 看起来工作起来完全一样。