1 sur 16551 téléchargements n'ont pas été migrés vers S3. La migration S3 a échoué pour la base de données 'default'

,

Ok, ce problème est maintenant résolu ! Voici comment j’ai procédé (avec l’aide immense d’Artur de notre forum)

Dans to_s3_migration.rb, j’ai changé ceci :

count = Upload.by_users.where("url NOT LIKE '#{base_url}%'").count
      if count > 0
        error_message =
          "#{count} sur #{Upload.count} téléversements non migrés vers S3. #{failure_message}"
        raise_or_log(error_message, should_raise)
        success = false
      end

Par ceci :

count = Upload.by_users.where("url NOT LIKE '#{base_url}%'").count
      if count > 0
        failed_uploads = Upload.by_users.where("url NOT LIKE '#{base_url}%'")
        failed_ids = failed_uploads.map(&:id)
        failed_id_list = failed_ids.join(", ")
        error_message =
          "#{count} sur #{Upload.count} téléversements non migrés vers S3. \n Liste des ID échoués : \n #{failed_id_list}; #{failure_message}"
        raise_or_log(error_message, should_raise)
        success = false
      end

Et ensuite, dans la console Rails, j’ai simplement supprimé le téléversement problématique. Maintenant, j’ai un problème avec

FileStore::ToS3MigrationError: 3 posts ne sont pas remappés à la nouvelle URL de téléversement S3. La migration S3 a échoué pour la base de données 'default'.

Mais je pense avoir rencontré un problème plus important : les ressources, après compilation, ne sont pas téléversées dans le bucket S3 :

Il devrait évidemment y avoir un dossier d’assets, mais il n’y en a aucun. C’est ce qui m’empêche de mettre un CDN devant tout cela, mais je suppose que c’est un autre problème, pour un autre sujet ?

4 « J'aime »

Pour les fichiers modifiés :

count = Post.where("cooked LIKE '%#{cdn_path}%'").count
      if count > 0
        failed_posts = Post.where("cooked LIKE '%#{cdn_path}%'")
        id_list = failed_posts.map(&:id).join(", ")
        error_message = "#{count} posts are not remapped to new S3 upload URL. \n List of failing posts: \n #{id_list} \n #{failure_message}"
        raise_or_log(error_message, should_raise)
        success = false
      end

à

count = Post.where("cooked LIKE '%#{cdn_path}%'").count
      if count > 0
        failed_posts = Post.where("cooked LIKE '%#{cdn_path}%'")
        failed_ids = failed_posts.map(&:id).join(", ")
        failed_id_list = failed_ids.join(", ")
        error_message = "#{count} posts are not remapped to new S3 upload URL. \n List of failing posts: \n #{failed_id_list} \n #{failure_message}"
        raise_or_log(error_message, should_raise)
        success = false
      end

J’ai obtenu trois identifiants, puis je suis allé sur https://example.com/p/ID et je l’ai supprimé de l’interface utilisateur. Ensuite, tout s’est bien passé !

3 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.