Aiuto per la migrazione di una categoria da un'istanza all'altra senza admin sull'istanza di origine

Il nostro team ha operato come ospite su un’altra istanza di Discourse. Stiamo configurando la nostra istanza di Discourse e vorremmo migrare le nostre categorie dall’istanza esistente alla nuova istanza. Non abbiamo accesso amministrativo al server esistente, ma gli amministratori sono disposti a fare un esportazione di categorie per noi. Tuttavia, questa esportazione non contiene allegati o immagini. Abbiamo accesso API all’istanza esistente, ma solo alle nostre categorie. Abbiamo accesso amministrativo alla nuova istanza.

È possibile migrare allegati e immagini utilizzando solo l’API per l’istanza esistente?

Stavo guardando il JSON esportato e i nomi dei file degli allegati sono stringhe casuali diverse da quelle servite nel browser, il che rende l’ingegnerizzazione inversa dell’API per scaricare allegati e immagini non così semplice. Anche se potessimo scaricare tutti gli allegati dall’istanza esistente, non sono sicuro di come aggiungerli alla nuova istanza. Questo post mi fa credere che sia facile come inserirli in quella posizione con il requisito che i nomi dei file siano identici a quelli nel JSON esportato, ma ciò non sembra funzionare.

Qualche idea?

1 Mi Piace

Puoi spiegare cosa intendi con questo?

Se guardi i dati elaborati per uno stream di post json, otterrai gli URL regolari degli allegati.

4 Mi Piace

Mi dispiace, non sono riuscito a rispondere perché sono nuovo e il mio account era in attesa.

Nella categoria esporta json (utilizzando il metodo collegato sopra), l’allegato in un particolare post appare così:

![image|505x473](upload://yyWAy3WPpjetoctRNL9hmPvNNwm.jpeg

Nel json cotto dall’API, la stessa immagine ha il seguente URL:

https://my.server.com/uploads/default/original/2X/f/f23d29caba9a31b2b63b93f4104d746623703ca2.jpeg

Non sembra esserci alcuna relazione nei nomi dei file. Date queste informazioni, posso usare l’API per recuperare gli allegati che non sono inclusi nell’esportazione. Ma non sono sicuro di quale nome dare al file e dove posizionarlo sul nuovo server.

Una volta risolto, sarebbe possibile far apparire gli allegati nelle pagine dei topic renderizzati quando vengono caricati come prima della migrazione?

1 Mi Piace

Se guardo il cotto tramite l’API (ad esempio questo) allora vedo gli URL completi delle immagini.

Ma penso che tu stia cercando questo:

2 Mi Piace

Tornando con una soluzione che funziona con un’istanza di test che non ho provato in produzione.

Questo è per il mio futuro io, da passare al team che farà effettivamente la migrazione o a chiunque altro abbia bisogno di qualcosa di simile.

Gli allegati dovrebbero avere il nome completo, che può essere convertito dalla forma breve nel json tramite lo script python in Converting short upload URLs to full URLs

Gli allegati dovrebbero essere inseriti in discourse/public/uploads/tombstone/default/original/

Quindi esegui uploads:recover_from_tombstone mentre sei in /var/discourse/

3 Mi Piace