| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Abstract injector class for GS requests.""" |
| |
| |
| class FileNotFoundError(Exception): |
| """Thrown by a subclass of CloudBucket when a file is not found.""" |
| pass |
| |
| |
| class BaseCloudBucket(object): |
| """An abstract base class for working with GS.""" |
| |
| def UploadFile(self, path, contents, content_type): |
| """Uploads a file to GS. |
| |
| Args: |
| path: where in GS to upload the file. |
| contents: the contents of the file to be uploaded. |
| content_type: the MIME Content-Type of the file. |
| """ |
| raise NotImplementedError |
| |
| def DownloadFile(self, path): |
| """Downsloads a file from GS. |
| |
| Args: |
| path: the location in GS to download the file from. |
| |
| Returns: |
| String contents of the file downloaded. |
| |
| Raises: |
| bucket_injector.NotFoundException: if the file is not found. |
| """ |
| raise NotImplementedError |
| |
| def UpdateFile(self, path, contents): |
| """Uploads a file to GS. |
| |
| Args: |
| path: location of the file in GS to update. |
| contents: the contents of the file to be updated. |
| """ |
| raise NotImplementedError |
| |
| def RemoveFile(self, path): |
| """Removes a file from GS. |
| |
| Args: |
| path: the location in GS to download the file from. |
| """ |
| raise NotImplementedError |
| |
| def FileExists(self, path): |
| """Checks if a file exists in GS. |
| |
| Args: |
| path: the location in GS of the file. |
| |
| Returns: |
| boolean representing whether the file exists in GS. |
| """ |
| raise NotImplementedError |
| |
| def GetImageURL(self, path): |
| """Gets a URL to an item in GS from its path. |
| |
| Args: |
| path: the location in GS of a file. |
| |
| Returns: |
| an url to a file in GS. |
| |
| Raises: |
| bucket_injector.NotFoundException: if the file is not found. |
| """ |
| raise NotImplementedError |
| |
| def GetAllPaths(self, prefix): |
| """Gets paths to files in GS that start with a prefix. |
| |
| Args: |
| prefix: the prefix to filter files in GS. |
| |
| Returns: |
| a generator of paths to files in GS. |
| """ |
| raise NotImplementedError |