2016-06-29 9 views
-1

Ich habe ein Projekt in der Hand zu Backup eine Website aus irgendwelchen Gründen. Ich benutze Anfragen in Python, um die Inhalte und Bilder (URLs) zu crawlen. Das Problem ist, wie kann ich das Bild in der Cloud speichern, indem ich die URL dieses Bildes in Cloud-Diensten (Google Drive, Dropbox usw.) verwende.Gibt es eine Cloud-API, um das Internet-Image mithilfe von Python in der Cloud zu speichern?

Ich weiß, dass es eine Möglichkeit gibt, zuerst das Bild lokal zu speichern und dann das lokale Bild in die Cloud hochzuladen. Aber ich frage mich, ob es APIs gibt, die das Hochladen von Bildern durch URLs unterstützen, nicht die lokale Datei.

Antwort

0

Wenn Sie nichts dagegen haben, für die Lagerung zu bezahlen, können Sie es zu Ihrem eigenen Cloud-Speicher speichern. Ich muss gelegentlich eine ähnliche Aktion ausführen und sie wie folgt behandeln:

def on_upload_image(self): 
    url = self.request.get('url') 
    result = urlfetch.fetch(url) 
    binary = result.content 
    blob_key = functions.get_blob_key_by_data(binary) 
    self.url = images.get_serving_url(blob_key, secure_url=True) 
    self.json() 

from google.appengine.api import app_identity 
def get_blob_key_by_data(data): 
    bucket = app_identity.get_default_gcs_bucket_name() 
    filename = hashlib.sha256(data).hexdigest() 
    mime_type = get_mime_type(data) 
    if not mime_type: 
    return None 

    gcs_filename = '/%s/image_%s' % (bucket, filename) 
    with gcs.open(gcs_filename, 'w', content_type=mime_type) as f: 
    f.write(data) 

    blob_key = blobstore.create_gs_key("/gs" + gcs_filename) 
    return blob_key