def testValidateGcsOptions(self): self.assertRaises(TypeError, common.validate_options, {1: 'foo'}) self.assertRaises(ValueError, common.validate_options, {'foo': 1}) self.assertRaises(ValueError, common.validate_options, {'foo': 'bar'}) common.validate_options({'x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar', 'x-goog-acl': 'private'})
def open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None, _account_id=None): """Opens a Google Cloud Storage file and returns it as a File-like object. Args: filename: A Google Cloud Storage filename of form '/bucket/filename'. mode: 'r' for reading mode. 'w' for writing mode. In reading mode, the file must exist. In writing mode, a file will be created or be overrode. content_type: The MIME type of the file. str. Only valid in writing mode. options: A str->basestring dict to specify additional headers to pass to GCS e.g. {'x-goog-acl': 'private', 'x-goog-meta-foo': 'foo'}. Supported options are x-goog-acl, x-goog-meta-, cache-control, content-disposition, and content-encoding. Only valid in writing mode. See https://developers.google.com/storage/docs/reference-headers for details. read_buffer_size: The buffer size for read. Read keeps a buffer and prefetches another one. To minimize blocking for large files, always read by buffer size. To minimize number of RPC requests for small files, set a large buffer size. Max is 30MB. retry_params: An instance of api_utils.RetryParams for subsequent calls to GCS from this file handle. If None, the default one is used. _account_id: Internal-use only. Returns: A reading or writing buffer that supports File-like interface. Buffer must be closed after operations are done. Raises: errors.AuthorizationError: if authorization failed. errors.NotFoundError: if an object that's expected to exist doesn't. ValueError: invalid open mode or if content_type or options are specified in reading mode. """ common.validate_file_path(filename) api = storage_api._get_storage_api(retry_params=retry_params, account_id=_account_id) filename = api_utils._quote_filename(filename) if mode == 'w': common.validate_options(options) return storage_api.StreamingBuffer(api, filename, content_type, options) elif mode == 'r': if content_type or options: raise ValueError('Options and content_type can only be specified ' 'for writing mode.') return storage_api.ReadBuffer(api, filename, buffer_size=read_buffer_size) else: raise ValueError('Invalid mode %s.' % mode)
def testValidateGcsOptions(self): self.assertRaises(TypeError, common.validate_options, {1: 'foo'}) self.assertRaises(ValueError, common.validate_options, {'foo': 1}) self.assertRaises(ValueError, common.validate_options, {'foo': 'bar'}) common.validate_options({ 'x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar', 'x-goog-acl': 'private' })
def testValidateGcsOptions(self): self.assertRaises(TypeError, common.validate_options, {1: "foo"}) self.assertRaises(ValueError, common.validate_options, {"foo": 1}) self.assertRaises(ValueError, common.validate_options, {"foo": "bar"}) common.validate_options({"x-goog-meta-foo": "foo", "x-goog-meta-bar": "bar", "x-goog-acl": "private"})