List of all uploaded files

Hello friends,

what are you thinking about some extra tab at the admin interface to keep control over the current disk usage, files sizes, click rates, filtering them after extension and searching for specific terms?

I wish, I could get more control over all attachments.

Best

7 « J'aime »

That’s something I definitely want done. Not sure when though.

11 « J'aime »

Sounds useful!

There is a bunch of product questions around how this could/should work in my mind. It looks like a problem that has been already figured out or solved in other forum software, but I wonder how will this be framed / built around Discourse’s philosophy.

I am also wondering more about the manifestations of providing uploads settings, e.g.: if you chose to introduce extension configuration, the composer needs to cater for this when users are selecting/uploading attachments, and so on. Also, whether this should be in core, or as a plugin.

On the bright side, if we ignore all questions / assumptions / product / design considerations, it doesn’t look like it is technically tricky, I made a one hour spike here (this is very immature implementation though :blush:).

You can definitely extend this with a bunch of useful features: settings, search / filtering, sorting, etc (and some other considerations like supporting pagination, …)

6 « J'aime »

If youbtalking about admin tools. You can considure usong plugin data explorer whic allows admins to query database. When I hunting free space I am querying db there is table uploads whic gives you size location and other useful things. Also one good thing is that deleating rows from uploads also dealeting files. Becouse ther is sidekiq job pruge oprhan uploads.

I am totally open to adding something here, but I feel a top level tab is a bit too much .

Conceptually this feels like a “report” to me with a drilldown vs a section for uploading things.

I would like to see this link to the new report

When I think about this problem I think the main use case is around admins trying to get a handle on the … upload problem…

  • Why do I have so many uploads?

  • Which users have the most/largest uploads ?

  • What are the 100 biggest uploads on my forum?

  • How many things were uploaded in the last month? That way I can keep track of trends.

@codinghorror / @j.jaffeux what are your thoughts here?

12 « J'aime »

Yes I agree it could be a report, we might have to start working on the filtering logic I talked with you months ago. But other than that it should be good.

3 « J'aime »

Great line of questioning @sam !

I think perhaps I lack some context on what is the admin’s job / use case for the upload problem, but it appears to be (if there is any research or perhaps admin opinions to confirm that, it would be great!) that it can be framed as: I am an Admin, I want to gain understanding of my instance’s uploads usage.

I wonder if there are any after actions when the job / use case is satisfied. For example, if the admin notices a problem or a trend, will the admin/site_settings/category/files is the place they can optimise their file uploading strategy?

Also, I agree that the Uploads section is heavy as a top level tab for this use case.

Any news about this topic?

Im looking for a option to look through the uploaded files.

3 « J'aime »

I guess, sorting and listing files isn’t as much as important for Discourse as for us. :see_no_evil:

Similar issue:

Voici quelques requêtes Data Explorer pour obtenir des détails sur les téléversements de publications. Il serait peut-être possible d’ajouter quelque chose de similaire dans la section des rapports administratifs pour les sites qui n’ont pas le plugin Data Explorer installé. Faites-moi savoir si ces données ne correspondent pas à ce que vous recherchez.

Quels utilisateurs ont le plus grand nombre de téléversements ou les plus volumineux ?

Renvoie l’utilisateur, son nombre de téléversements et la taille totale de ses téléversements en ko arrondie à deux décimales. La jointure sur la table users permet d’éviter que des données d’utilisateurs supprimés soient renvoyées. Les résultats sont triés par taille totale de téléversement dans l’ordre décroissant.

Incluant les images optimisées

WITH uploads_with_optimized AS (
SELECT
ul.user_id,
ROUND((SUM(COALESCE(oi.filesize, 0)) + SUM(ul.filesize)) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
LEFT JOIN optimized_images oi
ON ul.id = oi.upload_id
GROUP BY ul.user_id
)

SELECT
uwo.user_id,
COUNT(uploads.user_id) AS upload_count,
total_kb
FROM uploads_with_optimized uwo
JOIN uploads
ON uploads.user_id = uwo.user_id
GROUP BY uploads.user_id, uwo.user_id, total_kb
ORDER BY total_kb DESC
LIMIT 50

Excluant les images optimisées

SELECT
ul.user_id,
COUNT(ul.user_id) AS upload_count,
ROUND(SUM(ul.filesize) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
GROUP BY ul.user_id
ORDER BY total_kb DESC
LIMIT 50

Quels sont les 100 plus grands téléversements sur mon forum ?

Renvoie l’utilisateur, la publication contenant le téléversement et la taille du fichier du téléversement en ko. Les résultats sont triés par taille de téléversement dans l’ordre décroissant.

Incluant les images optimisées

SELECT
ul.user_id,
pul.post_id,
ROUND((SUM(oi.filesize) + ul.filesize) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
JOIN optimized_images oi
ON ul.id = oi.upload_id
GROUP BY oi.upload_id, ul.user_id, pul.post_id, ul.filesize
ORDER BY total_kb DESC
LIMIT 100

Excluant les images optimisées

SELECT
ul.user_id,
pul.post_id,
ROUND(ul.filesize / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
ORDER BY total_kb DESC
LIMIT 100

Téléversements des 30 derniers jours

La requête nécessite que vous fournissiez un paramètre :end_date. La date doit être au format ‘aaaa-mm-jjjj’. Par exemple ‘2020-01-08’. Elle renvoie les résultats pour la période de 30 jours qui se termine par end_date. Elle renvoie le jour, le nombre de téléversements et la taille totale des téléversements du jour en ko pour tous les jours de la période ayant des téléversements de publications. Les résultats sont triés par jour.

Incluant les images optimisées

--[params]
-- date :end_date

SELECT
ul.created_at::date AS jour,
COUNT(1) AS upload_count,
ROUND((SUM(COALESCE(oi.filesize, 0)) + SUM(ul.filesize)) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
LEFT JOIN optimized_images oi
ON ul.id = oi.upload_id
WHERE ul.created_at::date BETWEEN :end_date::date - INTERVAL '30 jours' AND :end_date
GROUP BY ul.created_at::date
ORDER BY ul.created_at::date DESC

Excluant les images optimisées

--[params]
-- date :end_date

SELECT
ul.created_at::date AS jour,
COUNT(1) AS upload_count,
ROUND(SUM(ul.filesize) / 1000.0, 2) AS daily_upload_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
WHERE ul.created_at::date BETWEEN :end_date::date - INTERVAL '30 jours' AND :end_date
GROUP BY ul.created_at::date
ORDER BY ul.created_at::date DESC

11 « J'aime »

Je suis un nouveau membre de la communauté (meta) et j’ai récemment repris les tâches d’administration pour une autre communauté utilisant Discourse (et hébergée par Discourse). Sur le tableau de bord, je viens d’observer un « saut » dans l’espace utilisé par les Téléchargements (passant d’environ 0,7 Go à 1,2 Go). Il semble que l’Explorateur de données ne soit disponible que pour les offres Business ou supérieures… Y aurait-il une autre méthode pour identifier quels fichiers récents consomment les 0,5 Go supplémentaires ?

2 « J'aime »

C’est entièrement de ma faute.

Nous avions auparavant un gros bug où nous ne comptions pas correctement la taille de toutes les pièces jointes.

Lorsqu’un utilisateur télécharge une image, nous la redimensionnons souvent 3 à 4 fois pour différentes résolutions et optimisations. Ces images optimisées sont stockées dans le cloud et continuent d’occuper de l’espace de stockage.

Pour voir les images réelles, vous pouvez exécuter :

SELECT * FROM optimized_images

@simon, pourrais-tu peut-être mettre à jour la requête ci-dessus pour prendre en compte optimized_images ?

5 « J'aime »

Ah, cela a beaucoup de sens. Je me suis brièvement demandé si cela pourrait être le cas — après avoir écrit ce message ici :wink:

Hmmm, peut-être vaut-il la peine d’ajouter une brève phrase à cet effet sur le jauge de stockage du tableau de bord, afin que les gens ne pensent pas que quelqu’un détournait leur espace de stockage avec des données inconnues :wink:

Et si vous créez un « inspecteur de téléchargements » qui ne nécessite pas les plugins du plan Business, ce serait super apprécié !!

Salutations !

4 « J'aime »

Enfin, je n’ai pas compris comment je peux voir la liste des uploads des membres dans différents sujets et publications ! ?

1 « J'aime »

Je souhaiterais parcourir le répertoire des fichiers téléchargés. Mon cas d’usage particulier est d’examiner les détails de cette URL dont le lien est rompu :

Tout soutien administrateur interprété pour le faire serait d’une grande aide. Ou ai-je manqué quelque chose ? Meilleures salutations, R

1 « J'aime »

Une autre solution de contournement consiste à :

  • créer et télécharger une sauvegarde du site avec « inclure les téléchargements »
  • accéder à cette archive et la décompresser, par exemple depuis la ligne de commande : $ tar -xvzf xxxx.tar.gz
  • passer au répertoire des téléchargements : $ cd uploads
  • sélectionner entre les sections originales et optimisées et explorer l’arborescence de fichiers résultante
  • aucun des noms de téléchargement n’est présent, tous les noms déploient des chaînes aléatoires (ou encodées)

Une interface graphique sur le portail d’administration offrirait une meilleure expérience utilisateur. Mon vote va donc à cette fonctionnalité. R

1 « J'aime »