Beispiel #1
0
 def open(
     self,
     filename,
     mode='r',
     read_buffer_size=DEFAULT_READ_BUFFER_SIZE,
     mime_type='application/octet-stream'):
   """Open an Azure Blob Storage file path for reading or writing.
   Args:
     filename (str): Azure Blob Storage file path in the form
     ``azfs://<storage-account>/<container>/<path>``.
     mode (str): ``'r'`` for reading or ``'w'`` for writing.
     read_buffer_size (int): Buffer size to use during read operations.
     mime_type (str): Mime type to set for write operations.
   Returns:
     Azure Blob Storage file object.
   Raises:
     ValueError: Invalid open file mode.
   """
   if mode == 'r' or mode == 'rb':
     downloader = BlobStorageDownloader(
         self.client, filename, buffer_size=read_buffer_size)
     return io.BufferedReader(
         DownloaderStream(
             downloader, read_buffer_size=read_buffer_size, mode=mode),
         buffer_size=read_buffer_size)
   elif mode == 'w' or mode == 'wb':
     uploader = BlobStorageUploader(self.client, filename, mime_type)
     return io.BufferedWriter(
         UploaderStream(uploader, mode=mode), buffer_size=128 * 1024)
   else:
     raise ValueError('Invalid file open mode: %s.' % mode)
Beispiel #2
0
    def open(self,
             filename,
             mode='r',
             read_buffer_size=16 * 1024 * 1024,
             mime_type='application/octet-stream'):
        """Open an S3 file path for reading or writing.

    Args:
      filename (str): S3 file path in the form ``s3://<bucket>/<object>``.
      mode (str): ``'r'`` for reading or ``'w'`` for writing.
      read_buffer_size (int): Buffer size to use during read operations.
      mime_type (str): Mime type to set for write operations.

    Returns:
      S3 file object.

    Raises:
      ValueError: Invalid open file mode.
    """
        if mode == 'r' or mode == 'rb':
            downloader = S3Downloader(self.client,
                                      filename,
                                      buffer_size=read_buffer_size)
            return io.BufferedReader(DownloaderStream(downloader, mode=mode),
                                     buffer_size=read_buffer_size)
        elif mode == 'w' or mode == 'wb':
            uploader = S3Uploader(self.client, filename, mime_type)
            return io.BufferedWriter(UploaderStream(uploader, mode=mode),
                                     buffer_size=128 * 1024)
        else:
            raise ValueError('Invalid file open mode: %s.' % mode)
Beispiel #3
0
  def open(
      self,
      filename,
      mode='r',
      read_buffer_size=DEFAULT_READ_BUFFER_SIZE,
      mime_type='application/octet-stream'):
    """Open a GCS file path for reading or writing.

    Args:
      filename (str): GCS file path in the form ``gs://<bucket>/<object>``.
      mode (str): ``'r'`` for reading or ``'w'`` for writing.
      read_buffer_size (int): Buffer size to use during read operations.
      mime_type (str): Mime type to set for write operations.

    Returns:
      GCS file object.

    Raises:
      ValueError: Invalid open file mode.
    """
    if mode == 'r' or mode == 'rb':
      downloader = GcsDownloader(
          self.client,
          filename,
          buffer_size=read_buffer_size,
          get_project_number=self.get_project_number)
      return io.BufferedReader(
          DownloaderStream(
              downloader, read_buffer_size=read_buffer_size, mode=mode),
          buffer_size=read_buffer_size)
    elif mode == 'w' or mode == 'wb':
      uploader = GcsUploader(
          self.client,
          filename,
          mime_type,
          get_project_number=self.get_project_number)
      return io.BufferedWriter(
          UploaderStream(uploader, mode=mode), buffer_size=128 * 1024)
    else:
      raise ValueError('Invalid file open mode: %s.' % mode)