Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1010)

Side by Side Diff: boto/s3/bucket.py

Issue 8669001: Pull in upstream boto from github at bcb719937de9ac2851e632d62b777352029a6d55 (Closed) Base URL: svn://svn.chromium.org/boto
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « boto/rds/__init__.py ('k') | boto/sdb/__init__.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2006-2010 Mitch Garnaat http://garnaat.org/ 1 # Copyright (c) 2006-2010 Mitch Garnaat http://garnaat.org/
2 # Copyright (c) 2010, Eucalyptus Systems, Inc. 2 # Copyright (c) 2010, Eucalyptus Systems, Inc.
3 # All rights reserved. 3 # All rights reserved.
4 # 4 #
5 # Permission is hereby granted, free of charge, to any person obtaining a 5 # Permission is hereby granted, free of charge, to any person obtaining a
6 # copy of this software and associated documentation files (the 6 # copy of this software and associated documentation files (the
7 # "Software"), to deal in the Software without restriction, including 7 # "Software"), to deal in the Software without restriction, including
8 # without limitation the rights to use, copy, modify, merge, publish, dis- 8 # without limitation the rights to use, copy, modify, merge, publish, dis-
9 # tribute, sublicense, and/or sell copies of the Software, and to permit 9 # tribute, sublicense, and/or sell copies of the Software, and to permit
10 # persons to whom the Software is furnished to do so, subject to the fol- 10 # persons to whom the Software is furnished to do so, subject to the fol-
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 src_bucket = self 552 src_bucket = self
553 else: 553 else:
554 src_bucket = self.connection.get_bucket(src_bucket_name) 554 src_bucket = self.connection.get_bucket(src_bucket_name)
555 acl = src_bucket.get_xml_acl(src_key_name) 555 acl = src_bucket.get_xml_acl(src_key_name)
556 if encrypt_key: 556 if encrypt_key:
557 headers[provider.server_side_encryption_header] = 'AES256' 557 headers[provider.server_side_encryption_header] = 'AES256'
558 src = '%s/%s' % (src_bucket_name, urllib.quote(src_key_name)) 558 src = '%s/%s' % (src_bucket_name, urllib.quote(src_key_name))
559 if src_version_id: 559 if src_version_id:
560 src += '?version_id=%s' % src_version_id 560 src += '?version_id=%s' % src_version_id
561 headers = {provider.copy_source_header : str(src)} 561 headers = {provider.copy_source_header : str(src)}
562 headers[provider.storage_class_header] = storage_class 562 # make sure storage_class_header key exists before accessing it
563 if provider.storage_class_header:
564 headers[provider.storage_class_header] = storage_class
563 if metadata: 565 if metadata:
564 headers[provider.metadata_directive_header] = 'REPLACE' 566 headers[provider.metadata_directive_header] = 'REPLACE'
565 headers = boto.utils.merge_meta(headers, metadata, provider) 567 headers = boto.utils.merge_meta(headers, metadata, provider)
566 else: 568 else:
567 headers[provider.metadata_directive_header] = 'COPY' 569 headers[provider.metadata_directive_header] = 'COPY'
568 response = self.connection.make_request('PUT', self.name, new_key_name, 570 response = self.connection.make_request('PUT', self.name, new_key_name,
569 headers=headers) 571 headers=headers)
570 body = response.read() 572 body = response.read()
571 if response.status == 200: 573 if response.status == 200:
572 key = self.new_key(new_key_name) 574 key = self.new_key(new_key_name)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 query_args += '&versionId=%s' % version_id 609 query_args += '&versionId=%s' % version_id
608 response = self.connection.make_request('GET', self.name, key_name, 610 response = self.connection.make_request('GET', self.name, key_name,
609 query_args=query_args, 611 query_args=query_args,
610 headers=headers) 612 headers=headers)
611 body = response.read() 613 body = response.read()
612 if response.status != 200: 614 if response.status != 200:
613 raise self.connection.provider.storage_response_error( 615 raise self.connection.provider.storage_response_error(
614 response.status, response.reason, body) 616 response.status, response.reason, body)
615 return body 617 return body
616 618
617 def set_xml_acl(self, acl_str, key_name='', headers=None, version_id=None): 619 def set_xml_acl(self, acl_str, key_name='', headers=None, version_id=None,
618 query_args = 'acl' 620 query_args='acl'):
619 if version_id: 621 if version_id:
620 query_args += '&versionId=%s' % version_id 622 query_args += '&versionId=%s' % version_id
621 response = self.connection.make_request('PUT', self.name, key_name, 623 response = self.connection.make_request('PUT', self.name, key_name,
622 data=acl_str.encode('ISO-8859-1' ), 624 data=acl_str.encode('ISO-8859-1' ),
623 query_args=query_args, 625 query_args=query_args,
624 headers=headers) 626 headers=headers)
625 body = response.read() 627 body = response.read()
626 if response.status != 200: 628 if response.status != 200:
627 raise self.connection.provider.storage_response_error( 629 raise self.connection.provider.storage_response_error(
628 response.status, response.reason, body) 630 response.status, response.reason, body)
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 query_args=query_args, 1201 query_args=query_args,
1200 headers=headers) 1202 headers=headers)
1201 body = response.read() 1203 body = response.read()
1202 boto.log.debug(body) 1204 boto.log.debug(body)
1203 if response.status != 204: 1205 if response.status != 204:
1204 raise self.connection.provider.storage_response_error( 1206 raise self.connection.provider.storage_response_error(
1205 response.status, response.reason, body) 1207 response.status, response.reason, body)
1206 1208
1207 def delete(self, headers=None): 1209 def delete(self, headers=None):
1208 return self.connection.delete_bucket(self.name, headers=headers) 1210 return self.connection.delete_bucket(self.name, headers=headers)
OLDNEW
« no previous file with comments | « boto/rds/__init__.py ('k') | boto/sdb/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698