Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: tools/android/loading/cloud/backend/google_storage_accessor.py

Issue 1908483002: tools/android/loading Loading trace database improvements (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor cleanup Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from gcloud import storage 5 import gcloud.exceptions
6 import gcloud.storage
6 7
7 8
8 class GoogleStorageAccessor(object): 9 class GoogleStorageAccessor(object):
9 """Utility class providing helpers for Google Cloud Storage. 10 """Utility class providing helpers for Google Cloud Storage.
10 """ 11 """
11 def __init__(self, credentials, project_name, bucket_name): 12 def __init__(self, credentials, project_name, bucket_name):
12 """project_name is the name of the Google Cloud project. 13 """project_name is the name of the Google Cloud project.
13 bucket_name is the name of the bucket that is used for Cloud Storage calls. 14 bucket_name is the name of the bucket that is used for Cloud Storage calls.
14 """ 15 """
15 self._credentials = credentials 16 self._credentials = credentials
16 self._project_name = project_name 17 self._project_name = project_name
17 self._bucket_name = bucket_name 18 self._bucket_name = bucket_name
18 19
19 def _GetStorageClient(self): 20 def _GetStorageClient(self):
20 """Returns the storage client associated with the project""" 21 """Returns the storage client associated with the project"""
21 return storage.Client(project = self._project_name, 22 return gcloud.storage.Client(project = self._project_name,
22 credentials = self._credentials) 23 credentials = self._credentials)
23 24
24 def _GetStorageBucket(self, storage_client): 25 def _GetStorageBucket(self, storage_client):
25 return storage_client.get_bucket(self._bucket_name) 26 return storage_client.get_bucket(self._bucket_name)
26 27
28 def DownloadAsString(self, remote_filename):
29 """Returns the content of a remote file as a string, or None if the file
30 does not exist.
31 """
32 client = self._GetStorageClient()
33 bucket = self._GetStorageBucket(client)
34 blob = bucket.get_blob(remote_filename)
35 if not blob:
36 return None
37 try:
38 return blob.download_as_string()
39 except gcloud.exceptions.NotFound:
40 return None
41
27 def UploadFile(self, filename_src, filename_dest): 42 def UploadFile(self, filename_src, filename_dest):
28 """Uploads a file to Google Cloud Storage 43 """Uploads a file to Google Cloud Storage
29 44
30 Args: 45 Args:
31 filename_src: name of the local file 46 filename_src: name of the local file
32 filename_dest: name of the file in Google Cloud Storage 47 filename_dest: name of the file in Google Cloud Storage
33 48
34 Returns: 49 Returns:
35 The URL of the file in Google Cloud Storage. 50 The URL of the file in Google Cloud Storage.
36 """ 51 """
(...skipping 13 matching lines...) Expand all
50 65
51 Returns: 66 Returns:
52 The URL of the file in Google Cloud Storage. 67 The URL of the file in Google Cloud Storage.
53 """ 68 """
54 client = self._GetStorageClient() 69 client = self._GetStorageClient()
55 bucket = self._GetStorageBucket(client) 70 bucket = self._GetStorageBucket(client)
56 blob = bucket.blob(filename_dest) 71 blob = bucket.blob(filename_dest)
57 blob.upload_from_string(data_string) 72 blob.upload_from_string(data_string)
58 return blob.public_url 73 return blob.public_url
59 74
OLDNEW
« no previous file with comments | « tools/android/loading/cloud/backend/README.md ('k') | tools/android/loading/cloud/backend/startup-script.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698