On 2024/10/23 23:22, 'Wätzold Plaum' via Trac Users wrote:
> Hi,
> I want to backup all Attachments in a way that they can be linked to the 
> tickets. I can download the attachments-folder, but there we have some kind 
> of md5-hash encryption. The attachments tabel contains the clear names. Any 
> attempt to encode the file name of the attachment to md5 or sh1 failed. 
> 
> Any idea how to get all the attachments with clear names?
> 
> I'm running track-admin 1.2.6
> 
> Best Regards,
> Wätzold

See `Attachment._get_path()` at 
https://trac.edgewall.org/browser/tags/trac-1.2.6/trac/attachment.py#L727

[[[
import os, sys
from trac.env import Environment
from trac.attachment import Attachment

def main(args):
    if not args:
        sys.stderr.write('Usage: %s envpaths\n' % sys.argv[0])
        sys.exit(1)
    for arg in args:
        env = Environment(arg)
        list_attachments(env)
        env.shutdown()

if hasattr(Environment, 'attachments_dir'):
    get_attachments_dir = lambda env: env.attachments_dir
else:
    get_attachments_dir = lambda env: \
        os.path.join(os.path.normpath(env.path), 'files', 'attachments')

def list_attachments(env):
    out = sys.stdout
    if hasattr(out, 'buffer'):
        out = out.buffer
    attachments_dir = get_attachments_dir(env)
    with env.db_query as db:
        cursor = db.cursor()
        cursor.execute('SELECT type, id, filename FROM attachment '
                       'ORDER BY type, id')
        for type_, id_, filename in cursor:
            local_path = Attachment._get_path(attachments_dir, type_, id_,
                                              filename)
            line = u'\t'.join([type_, id_, filename, local_path]) + u'\n'
            out.write(line.encode('utf-8'))

if __name__ == '__main__':
    main(sys.argv[1:])
]]]

-- 
Jun Omae <[email protected]> (大前 潤)

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/trac-users/59ae5d22-139e-4689-9c25-bfa47a86b704%40gmail.com.

Reply via email to