Skip to content

Commit 2690753

Browse files
[Fixes #12728] 3dtiles download does not keep the folder structure (#12729)
1 parent 17c4707 commit 2690753

File tree

4 files changed

+5
-7
lines changed

4 files changed

+5
-7
lines changed

geonode/assets/local.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from django.http import HttpResponse, StreamingHttpResponse
88
from django.urls import reverse
99
from django_downloadview import DownloadResponse
10-
from zipstream import ZipStream, walk
10+
from zipstream import ZipStream
1111

1212
from geonode.assets.handlers import asset_handler_registry, AssetHandlerInterface, AssetDownloadHandlerInterface
1313
from geonode.assets.models import LocalAsset
@@ -261,9 +261,7 @@ def create_response(
261261
match attachment:
262262
case True:
263263
logger.info(f"Zipping file '{localfile}' with name '{orig_base}'")
264-
zs = ZipStream(sized=True)
265-
for filepath in walk(LocalAssetHandler._get_managed_dir(asset)):
266-
zs.add_path(filepath, os.path.basename(filepath))
264+
zs = ZipStream(sized=True).from_path(LocalAssetHandler._get_managed_dir(asset), arcname="/")
267265
# closing zip for all contents to be written
268266
return StreamingHttpResponse(
269267
zs,

geonode/proxy/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ def download(request, resourceid, sender=Dataset):
275275
register_event(request, "download", instance)
276276
folder = os.path.dirname(dataset_files[0])
277277

278-
zs = ZipStream.from_path(folder)
278+
zs = ZipStream.from_path(folder, arcname="/")
279279
return StreamingHttpResponse(
280280
zs,
281281
content_type="application/zip",

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ rdflib==6.3.2
2626
smart_open==7.0.4
2727
PyMuPDF==1.24.3
2828
defusedxml==0.7.1
29-
zipstream-ng==1.7.1
29+
zipstream-ng==1.8.0
3030

3131
# Django Apps
3232
django-allauth==0.63.6

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ install_requires =
4747
Deprecated==1.2.14
4848
wrapt==1.16.0
4949
jsonschema==4.22.0
50-
zipstream-ng==1.7.1
50+
zipstream-ng==1.8.0
5151
schema==0.7.7
5252
rdflib==6.3.2
5353
smart_open==7.0.4

0 commit comments

Comments
 (0)