2

Est-il possible de télécharger des fichiers dans git directement dans le compartiment de stockage de google cloud?Transférer des fichiers de git vers le compartiment de stockage google cloud

J'ai essayé d'utiliser la commande suivante:

gsutil cp https://Link.git gs://bucketname 

Mais il me donne une erreur:

InvalidUrlError: Unrecognized scheme "https".

est-il une autre façon que je peux télécharger du contenu à ce sujet?

Toute aide est très appréciée!

Répondre

1

sous les Peeking montre de capot, en google-cloud-sdk/platform/gsutil/gslib/storage_url.py, la (probable) déclenchement d'un message d'erreur vous avez obtenu:

def _GetSchemeFromUrlString(url_str): 
    """Returns scheme component of a URL string.""" 

    end_scheme_idx = url_str.find('://') 
    if end_scheme_idx == -1: 
    # File is the default scheme. 
    return 'file' 
    else: 
    return url_str[0:end_scheme_idx].lower() 

[...]

def StorageUrlFromString(url_str): 
    """Static factory function for creating a StorageUrl from a string.""" 

    scheme = _GetSchemeFromUrlString(url_str) 

    if scheme not in ('file', 's3', 'gs'): 
    raise InvalidUrlError('Unrecognized scheme "%s"' % scheme) 

Fondamentalement, l'outil ne avoir un support pour les URL génériques.

Bien sûr, on pourrait se lancer dans l'amélioration de l'outil pour prendre en charge la copie directe à partir d'un repo git. Mais il convient de noter que cela ne fonctionnera que dans le mode daisychain. De Options:

-D

Copy in "daisy chain" mode, i.e., copying between two buckets by hooking a download to an upload, via the machine where gsutil is run. This stands in contrast to the default, where data are copied between two buckets "in the cloud", i.e., without needing to copy via the machine where gsutil runs.

[...]

Note: Daisy chain mode is automatically used when copying between providers (e.g., to copy data from Google Cloud Storage to another provider).

Mais puisque dans ce cas, les données devraient passer par la machine locale en cours d'exécution gsutil il est probablement plus simple de cloner tout le git localement puis utilisez la gsutil non modifiée pour télécharger à partir de cette prise en pension locale au seau :)