Skip to content

Commit

Permalink
Transfer attached files between assetstores
Browse files Browse the repository at this point in the history
  • Loading branch information
willdunklin committed Sep 21, 2023
1 parent 74f7f65 commit 145d3f1
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions import_tracker/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from girder.api.rest import boundHandler
from girder.constants import AccessType, SortDir
from girder.models.assetstore import Assetstore
from girder.models.file import File
from girder.models.folder import Folder
from girder.models.item import Item
from girder.models.upload import Upload
Expand Down Expand Up @@ -76,12 +77,24 @@ def getImports(query=None, user=None, unique=False, limit=None, offset=None, sor

def moveLeafFiles(folder, user, assetstore):
Folder().updateFolder(folder)
child_items = Folder().childItems(folder)

folder_item = Item().findOne({
'folderId': folder['_id'],
})
unique_clause = {'assetstoreId': {'$ne': ObjectId(assetstore['_id'])}}

child_folders = Folder().childFolders(folder, 'folder', user=user)
child_items = Folder().childItems(folder, filters=unique_clause)

results = []
for attached_file in File().find({
'attachedToId': folder_item['_id'],
**unique_clause
}):
results.append(Upload().moveFileToAssetstore(attached_file, user, assetstore))

for item in child_items:
for (_, file) in Item().fileList(item, data=False):
for file in File().find({'itemId': ObjectId(item['_id']), **unique_clause}):
results.append(Upload().moveFileToAssetstore(file, user, assetstore))

for child_folder in child_folders:
Expand Down

0 comments on commit 145d3f1

Please sign in to comment.