コード例 #1
0
ファイル: s3io.py プロジェクト: NarasimhaKattunga/kafka-1
    def finish(self):

        self._write_to_s3(self.buffer)

        if self.last_error is not None:
            raise self.last_error  # pylint: disable=raising-bad-type

        request = messages.CompleteMultipartUploadRequest(
            self._bucket, self._name, self.upload_id, self.parts)
        self._client.complete_multipart_upload(request)
コード例 #2
0
    def finish(self):
        if len(self.buffer) > 0:
            # writes with zero length or mid size files between
            # MIN_WRITE_SIZE = 5 * 1024 * 1024
            # MAX_WRITE_SIZE = 5 * 1024 * 1024 * 1024
            # as we will reach this finish() with len(self.buffer) == 0
            # which will fail
            self._write_to_s3(self.buffer)

        if self.last_error is not None:
            raise self.last_error  # pylint: disable=raising-bad-type

        request = messages.CompleteMultipartUploadRequest(
            self._bucket, self._name, self.upload_id, self.parts)
        self._client.complete_multipart_upload(request)
コード例 #3
0
ファイル: client_test.py プロジェクト: wanwanzhu/beam
    def test_complete_multipart_upload_too_many(self):

        object = self.test_path + 'upload_part'
        request = messages.UploadRequest(self.test_bucket, object, None)
        response = self.client.create_multipart_upload(request)
        upload_id = response.upload_id

        part_number = 1
        contents_1 = os.urandom(5 * 1024)
        request_1 = messages.UploadPartRequest(self.test_bucket, object,
                                               upload_id, part_number,
                                               contents_1)
        response_1 = self.client.upload_part(request_1)

        part_number = 2
        contents_2 = os.urandom(1024)
        request_2 = messages.UploadPartRequest(self.test_bucket, object,
                                               upload_id, part_number,
                                               contents_2)
        response_2 = self.client.upload_part(request_2)

        parts = [
            {
                'PartNumber': 1,
                'ETag': response_1.etag
            },
            {
                'PartNumber': 2,
                'ETag': response_2.etag
            },
            {
                'PartNumber': 3,
                'ETag': 'fake-etag'
            },
        ]
        complete_request = messages.CompleteMultipartUploadRequest(
            self.test_bucket, object, upload_id, parts)

        try:
            self.client.complete_multipart_upload(complete_request)
        except Exception as e:
            self.assertIsInstance(e, messages.S3ClientError)
            self.assertEqual(e.code, 400)