Esempio n. 1
0
  def upload_part(self, request):
    # Save off bytes passed to internal data store
    upload_id, part_number = request.upload_id, request.part_number

    if part_number < 0 or not isinstance(part_number, int):
      raise messages.S3ClientError('Param validation failed on part number',
                                   400)

    if upload_id not in self.multipart_uploads:
      raise messages.S3ClientError('The specified upload does not exist', 404)

    self.multipart_uploads[upload_id][part_number] = request.bytes

    etag = '"%s"' % ('x' * 32)
    return messages.UploadPartResponse(etag, part_number)
Esempio n. 2
0
    def upload_part(self, request):
        r"""Uploads part of a file to S3 during a multipart upload

    Args:
      request: (UploadPartRequest) input message
    Returns:
      (UploadPartResponse) The response message.
    """
        try:
            boto_response = self.client.upload_part(
                Body=request.bytes,
                Bucket=request.bucket,
                Key=request.object,
                PartNumber=request.part_number,
                UploadId=request.upload_id)
            response = messages.UploadPartResponse(boto_response['ETag'],
                                                   request.part_number)
            return response
        except Exception as e:
            raise messages.S3ClientError(str(e), get_http_error_code(e))
Esempio n. 3
0
    def upload_part(self, request):
        r"""Uploads part of a file to S3 during a multipart upload

    Args:
      request: (UploadPartRequest) input message
    Returns:
      (UploadPartResponse) The response message.
    """
        try:
            boto_response = self.client.upload_part(
                Body=request.bytes,
                Bucket=request.bucket,
                Key=request.object,
                PartNumber=request.part_number,
                UploadId=request.upload_id)
            response = messages.UploadPartResponse(boto_response['ETag'],
                                                   request.part_number)
            return response
        except Exception as e:
            message = e.response['Error']['Message']
            code = e.response['ResponseMetadata']['HTTPStatusCode']
            raise messages.S3ClientError(message, code)