openzim / openzim/python-scraperlib

Add S3 based optimization cache support

Ouverte
#30 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement stale
Langage dominant
Python
Étoiles
31
Forks
27
Merge moyen
3 j 7 h
PR mergées (30 j)
2

Description

We use kiwix_storagelib for implementing S3 based optimization cache in the scrapers. However, this gives rise to redundant code. We put a version of the file along with the optimizer version as the metadata always. So, this can be better implemented in scraperlib. For a start, we can have a caching module that can have 3 functions, (or maybe a class containing methods). The primary 3 things we need are -

  • download_from_cache()
  • upload_to_cache()
  • check_credentials()

There can be several ways to have this, but it should at least fulfill the following -

  • Compare optimizer_version
  • Compare file_version

Optional things can be to check file upload date and discard if it's older than a specified amount of time. If we go for a class based approach, we can also explore possibilities to improve performance.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner l’utilisation existante de kiwix_storagelib dans les scrapers et la manière dont les versions de optimizer et des fichiers sont stockées en tant que métadonnées. Définissez le point d’entrée du cache et vérifiez que les identifiants, les téléchargements, les téléversements et les deux comparaisons de versions sont couverts ; aucun fichier ni test précis n’est mentionné dans l’issue.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, python
Domaine
backend, cloud
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.