Les pièces jointes des rapports exportés (j’ai testé avec les vues de page consolidées) ne sont pas marquées comme sécurisées malgré le fait que le fichier ait une ACL privée, ce qui empêche le téléchargement car l’URL courte pointait vers un lien non signé. Après avoir exécuté la tâche Rake uploads:secure_upload_analyse_and_update, il a été correctement marqué comme sécurisé (il y avait 3 autres publications/5 téléchargements également trouvés, mais je n’ai pas pu déterminer ce qu’ils étaient).
Pouvez-vous clarifier ce que vous entendez par « pièce jointe de rapport exporté » ? Capture d’écran ?
Désolé pour cela, je fais référence au fichier ZIP lié dans le message privé envoyé car l’exportation est terminée.
C’est étrange, si j’essaie cela sur un site de médias sécurisé, le téléchargement est correctement marqué comme sécurisé. Pouvez-vous montrer l’enregistrement du téléchargement comme ceci après avoir réessayé ?
#<Upload:0x0000556ae80c5208
id: 532362,
user_id: 1436,
original_filename: "consolidated-page-views-220318-031153-54.zip",
filesize: 480,
width: nil,
height: nil,
url: "//blah.zip",
created_at: Fri, 18 Mar 2022 03:11:53.556489000 UTC +00:00,
updated_at: Fri, 18 Mar 2022 03:11:53.842038000 UTC +00:00,
sha1: "12345",
origin: nil,
retain_hours: nil,
extension: "zip",
thumbnail_width: nil,
thumbnail_height: nil,
etag: "12345",
secure: true,
access_control_post_id: 377702,
original_sha1: "12345",
verification_status: 1,
animated: nil,
security_last_changed_at: Fri, 18 Mar 2022 03:11:53.836860000 UTC +00:00,
security_last_changed_reason: "login is required | source: post creator"
>
Votre site nécessite-t-il une connexion ?
Il n’est pas nécessaire de se connecter
#<Upload:0x000055646d495a30
id: 62749,
user_id: 1,
original_filename: "web-crawlers-220318-032906-26.zip",
filesize: 3017,
width: nil,
height: nil,
url:
"//[nope].storage.googleapis.com/original/3X/6/7/679649f9c6d33541cf5f5d2c48c2ef514bde36a0.zip",
created_at: Fri, 18 Mar 2022 03:29:07.114686000 UTC +00:00,
updated_at: Fri, 18 Mar 2022 03:29:07.328592000 UTC +00:00,
sha1: "679649f9c6d33541cf5f5d2c48c2ef514bde36a0",
origin: nil,
retain_hours: nil,
extension: "zip",
thumbnail_width: nil,
thumbnail_height: nil,
etag: "54f0df6d95a84d04877aa20f238c3b1e",
secure: false,
access_control_post_id: 214238,
original_sha1: "5cc4f437505ae3a07bdd27bbe2653462de31db6d",
verification_status: 1,
animated: nil,
security_last_changed_at: Fri, 18 Mar 2022 03:29:07.112534000 UTC +00:00,
security_last_changed_reason: "no checks satisfied | source: upload creator">
Notre paramètre de site secure_media est uniquement validé par rapport à AWS S3. C’est peut-être le problème.
C’est la partie étrange :
security_last_changed_reason: "no checks satisfied | source: upload creator"
Pour moi, avec login_required false et secure_media true dans les paramètres de mon site, j’obtiens ceci lorsque j’exporte un rapport et qu’il m’est envoyé par MP :
security_last_changed_reason: "access control post dictates security | source: post creator"
Cela a du sens car le créateur du post pour le MP a la pièce jointe téléchargée, et à ce moment-là, elle devrait être définie sur secure: true. Vous avez un access_control_post_id sur cet enregistrement de téléchargement, mais il ne semble pas avoir fonctionné correctement ?
Que se passe-t-il si vous faites Post.find(214238).with_secure_media?
Je ne pense pas que cela devrait affecter cela, cela n’affecterait que les ACL, je pense.
Cela ne s’appliquerait-il pas à toutes les téléversements potentiellement sécurisés ? Étant donné que les messages postés dans des sujets privés et d’autres MP n’ont pas ce problème, je n’en suis pas certain.
=> vrai
Hmm… Je ne suis pas sûr de ce qui s’est passé ici alors
C’est tellement étrange, si j’ajoute un point d’arrêt à l’intérieur de PostCreator (qui est appelé par le job d’exportation), j’obtiens un résultat similaire au vôtre au début pour le téléchargement :
secure: false,
access_control_post_id: 67115,
...
security_last_changed_at: Fri, 18 Mar 2022 04:14:42.292485000 UTC +00:00,
security_last_changed_reason: "no checks satisfied | source: upload creator"
Mais ensuite, dès que la mise à jour du statut sécurisé de PostCreator s’effectue, tout va bien :
secure: true,
access_control_post_id: 67115,
...
security_last_changed_at: Fri, 18 Mar 2022 04:14:55.645303000 UTC +00:00,
security_last_changed_reason: "access control post dictates security | source: post creator"
Est-ce que Discourse.store.external? renvoie true pour vous ?
def update_uploads_secure_status(source:)
if Discourse.store.external?
Jobs.enqueue(:update_post_uploads_secure_status, post_id: self.id, source: source)
end
end
C’est le cas, je ne vois aucun travail en cours d’exécution ou planifié dans Sidekiq, donc je suppose qu’il a échoué ou qu’il n’a jamais été exécuté.
Je suis tellement confus
Y a-t-il quelque chose sur votre page /logs qui semble lié à cela ? Il semble que la seule façon dont cela pourrait se produire est si ce job sidekiq update_post_uploads_secure_status échoue ou génère une erreur d’une manière ou d’une autre.
Il y a eu quelques erreurs, mais elles étaient toutes liées au travail CleanUpUploads. Après une enquête plus approfondie, il semble que le travail n’ait jamais été exécuté (il n’y a eu aucun travail échoué au cours des 2 derniers jours).
Je suis désolé, je ne suis pas en mesure de reproduire cela, il n’y a donc pas grand-chose d’autre que nous puissions faire pour le moment.
