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 curtidas

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

11 curtidas

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 curtidas

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 curtidas

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 curtidas

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 curtidas

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

Similar issue:

Aqui estĂŁo algumas consultas do Data Explorer para obter detalhes sobre uploads de posts. Algo semelhante poderia ser adicionado Ă  seção de relatĂłrios administrativos para sites que nĂŁo tĂȘm o plugin Data Explorer instalado. Avise-me se esses dados nĂŁo forem o que vocĂȘ procura.

Quais usuĂĄrios tĂȘm mais uploads ou uploads maiores?

Retorna o usuĂĄrio, a quantidade de uploads e o total de uploads em KB, arredondado para duas casas decimais. O join na tabela users serve para evitar que dados de usuĂĄrios excluĂ­dos sejam retornados. Os resultados sĂŁo ordenados por tamanho total de upload em ordem decrescente.

Incluindo imagens otimizadas

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

Excluindo imagens otimizadas

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

Quais sĂŁo os 100 maiores uploads do meu fĂłrum?

Retorna o usuĂĄrio, o post com o upload e o tamanho do arquivo do upload em KB. Os resultados sĂŁo ordenados por tamanho de upload em ordem decrescente.

Incluindo imagens otimizadas

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

Excluindo imagens otimizadas

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

Uploads dos Ășltimos 30 dias

A consulta exige que vocĂȘ forneça um parĂąmetro :end_date. A data deve estar no formato ‘aaaa-mm-dd’. Por exemplo, ‘2020-01-08’. Ela retorna resultados para o perĂ­odo de 30 dias que termina com o end_date. Retorna o dia, a quantidade de uploads e o total de uploads do dia em KB para todos os dias do perĂ­odo que possuem uploads de posts. Os resultados sĂŁo ordenados por dia.

Incluindo imagens otimizadas

--[params]
-- date :end_date

SELECT
ul.created_at::date AS day,
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 days' AND :end_date
GROUP BY ul.created_at::date
ORDER BY ul.created_at::date DESC

Excluindo imagens otimizadas

--[params]
-- date :end_date

SELECT
ul.created_at::date AS day,
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 days' AND :end_date
GROUP BY ul.created_at::date
ORDER BY ul.created_at::date DESC

11 curtidas

Sou um novo membro da comunidade (meta) e recentemente assumi as funçÔes de administrador de outra comunidade que usa o Discourse (e que Ă© hospedada pelo prĂłprio Discourse). No painel, acabei de ver um “salto” no espaço utilizado pelos Uploads (de cerca de 0,7 GB para 1,2 GB). Parece que o Data Explorer estĂĄ disponĂ­vel apenas para planos Business ou superiores
 Haveria alguma outra forma de descobrir quais arquivos recentes estĂŁo consumindo esses 0,5 GB adicionais?

2 curtidas

Isso Ă© inteiramente culpa minha.

Tivemos um grande bug no passado em que nĂŁo estĂĄvamos contando corretamente o tamanho de todos os uploads.

Quando um usuårio faz o upload de uma imagem, frequentemente a redimensionamos de 3 a 4 vezes para vårias resoluçÔes e otimizaçÔes. Essas imagens otimizadas são armazenadas na nuvem e ainda ocupam espaço de armazenamento.

Para ver as imagens reais, vocĂȘ faria:

SELECT * FROM optimized_images

@simon talvez seja necessĂĄrio atualizar o comando acima para incluir as optimized_images?

5 curtidas

Ah, isso faz muito sentido. Eu brevemente me perguntei se poderia ser o caso — depois de escrever o post aqui :wink:

Hmmm, talvez valha a pena adicionar uma breve frase nesse sentido na barra de armazenamento no painel, para que as pessoas não pensem que alguém estå desviando espaço de armazenamento delas com dados desconhecidos :wink:

E se vocĂȘ algum dia criar um “Inspeção de Uploads” que nĂŁo exija os plugins do plano Business, isso seria super apreciado!!

Abraços!

4 curtidas

Finalmente, nĂŁo entendi como posso ver a lista de uploads dos membros em diferentes tĂłpicos e posts!!??

1 curtida

Gostaria de navegar pelo diretĂłrio de arquivos carregados. Meu caso de uso especĂ­fico Ă© investigar os detalhes deste URL com link quebrado:

Qualquer suporte administrativo interpretado para isso seria de grande ajuda. Ou deixei passar algo?
Com os melhores cumprimentos,
R

1 curtida

Outra solução alternativa Ă©:\n\n- criar e baixar um backup do site com "incluir uploads"\n- navegar atĂ© esse arquivo e descompactĂĄ-lo, por exemplo, a partir da linha de comando: $ tar -xvzf xxxx.tar.gz\n- mudar para o diretĂłrio de uploads: $ cd uploads\n- selecionar entre as seçÔes original e otimizada e explorar a ĂĄrvore de arquivos resultante\n- nenhum dos nomes de upload estĂĄ presente, todos os nomes usam strings aleatĂłrias (ou codificadas)\n\nUma interface grĂĄfica no portal de administração proporcionaria uma melhor experiĂȘncia do usuĂĄrio. Portanto, meu voto Ă© para essa funcionalidade.\u0026nbsp;R

1 curtida