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

Unified Diff: third_party/gsutil/20110627/boto/boto/gs/key.py

Issue 10199002: Upgrade gsutil to 3.4 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed comments Created 8 years, 8 months 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 side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/20110627/boto/boto/gs/key.py
diff --git a/third_party/gsutil/20110627/boto/boto/gs/key.py b/third_party/gsutil/20110627/boto/boto/gs/key.py
deleted file mode 100644
index bf501051434c85d2b3a7dcce0fc544d72b84ff5c..0000000000000000000000000000000000000000
--- a/third_party/gsutil/20110627/boto/boto/gs/key.py
+++ /dev/null
@@ -1,246 +0,0 @@
-# Copyright 2010 Google Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-from boto.s3.key import Key as S3Key
-
-class Key(S3Key):
-
- def add_email_grant(self, permission, email_address):
- """
- Convenience method that provides a quick way to add an email grant to a
- key. This method retrieves the current ACL, creates a new grant based on
- the parameters passed in, adds that grant to the ACL and then PUT's the
- new ACL back to GS.
-
- :type permission: string
- :param permission: The permission being granted. Should be one of:
- READ|FULL_CONTROL
- See http://code.google.com/apis/storage/docs/developer-guide.html#authorization
- for more details on permissions.
-
- :type email_address: string
- :param email_address: The email address associated with the Google
- account to which you are granting the permission.
- """
- acl = self.get_acl()
- acl.add_email_grant(permission, email_address)
- self.set_acl(acl)
-
- def add_user_grant(self, permission, user_id):
- """
- Convenience method that provides a quick way to add a canonical user
- grant to a key. This method retrieves the current ACL, creates a new
- grant based on the parameters passed in, adds that grant to the ACL and
- then PUT's the new ACL back to GS.
-
- :type permission: string
- :param permission: The permission being granted. Should be one of:
- READ|FULL_CONTROL
- See http://code.google.com/apis/storage/docs/developer-guide.html#authorization
- for more details on permissions.
-
- :type user_id: string
- :param user_id: The canonical user id associated with the GS account to
- which you are granting the permission.
- """
- acl = self.get_acl()
- acl.add_user_grant(permission, user_id)
- self.set_acl(acl)
-
- def add_group_email_grant(self, permission, email_address, headers=None):
- """
- Convenience method that provides a quick way to add an email group
- grant to a key. This method retrieves the current ACL, creates a new
- grant based on the parameters passed in, adds that grant to the ACL and
- then PUT's the new ACL back to GS.
-
- :type permission: string
- :param permission: The permission being granted. Should be one of:
- READ|FULL_CONTROL
- See http://code.google.com/apis/storage/docs/developer-guide.html#authorization
- for more details on permissions.
-
- :type email_address: string
- :param email_address: The email address associated with the Google
- Group to which you are granting the permission.
- """
- acl = self.get_acl(headers=headers)
- acl.add_group_email_grant(permission, email_address)
- self.set_acl(acl, headers=headers)
-
- def add_group_grant(self, permission, group_id):
- """
- Convenience method that provides a quick way to add a canonical group
- grant to a key. This method retrieves the current ACL, creates a new
- grant based on the parameters passed in, adds that grant to the ACL and
- then PUT's the new ACL back to GS.
-
- :type permission: string
- :param permission: The permission being granted. Should be one of:
- READ|FULL_CONTROL
- See http://code.google.com/apis/storage/docs/developer-guide.html#authorization
- for more details on permissions.
-
- :type group_id: string
- :param group_id: The canonical group id associated with the Google
- Groups account you are granting the permission to.
- """
- acl = self.get_acl()
- acl.add_group_grant(permission, group_id)
- self.set_acl(acl)
-
- def set_contents_from_file(self, fp, headers=None, replace=True,
- cb=None, num_cb=10, policy=None, md5=None,
- res_upload_handler=None):
- """
- Store an object in GS using the name of the Key object as the
- key in GS and the contents of the file pointed to by 'fp' as the
- contents.
-
- :type fp: file
- :param fp: the file whose contents are to be uploaded
-
- :type headers: dict
- :param headers: additional HTTP headers to be sent with the PUT request.
-
- :type replace: bool
- :param replace: If this parameter is False, the method will first check
- to see if an object exists in the bucket with the same key. If it
- does, it won't overwrite it. The default value is True which will
- overwrite the object.
-
- :type cb: function
- :param cb: a callback function that will be called to report
- progress on the upload. The callback should accept two integer
- parameters, the first representing the number of bytes that have
- been successfully transmitted to GS and the second representing the
- total number of bytes that need to be transmitted.
-
- :type num_cb: int
- :param num_cb: (optional) If a callback is specified with the cb
- parameter, this parameter determines the granularity of the callback
- by defining the maximum number of times the callback will be called
- during the file transfer.
-
- :type policy: :class:`boto.gs.acl.CannedACLStrings`
- :param policy: A canned ACL policy that will be applied to the new key
- in GS.
-
- :type md5: A tuple containing the hexdigest version of the MD5 checksum
- of the file as the first element and the Base64-encoded version of
- the plain checksum as the second element. This is the same format
- returned by the compute_md5 method.
- :param md5: If you need to compute the MD5 for any reason prior to
- upload, it's silly to have to do it twice so this param, if present,
- will be used as the MD5 values of the file. Otherwise, the checksum
- will be computed.
-
- :type res_upload_handler: ResumableUploadHandler
- :param res_upload_handler: If provided, this handler will perform the
- upload.
-
- TODO: At some point we should refactor the Bucket and Key classes,
- to move functionality common to all providers into a parent class,
- and provider-specific functionality into subclasses (rather than
- just overriding/sharing code the way it currently works).
- """
- provider = self.bucket.connection.provider
- headers = headers or {}
- if policy:
- headers[provider.acl_header] = policy
- if hasattr(fp, 'name'):
- self.path = fp.name
- if self.bucket != None:
- if not md5:
- md5 = self.compute_md5(fp)
- else:
- # Even if md5 is provided, still need to set size of content.
- fp.seek(0, 2)
- self.size = fp.tell()
- fp.seek(0)
- self.md5 = md5[0]
- self.base64md5 = md5[1]
- if self.name == None:
- self.name = self.md5
- if not replace:
- k = self.bucket.lookup(self.name)
- if k:
- return
- if res_upload_handler:
- res_upload_handler.send_file(self, fp, headers, cb, num_cb)
- else:
- # Not a resumable transfer so use basic send_file mechanism.
- self.send_file(fp, headers, cb, num_cb)
-
- def set_contents_from_filename(self, filename, headers=None, replace=True,
- cb=None, num_cb=10, policy=None, md5=None,
- reduced_redundancy=None,
- res_upload_handler=None):
- """
- Store an object in GS using the name of the Key object as the
- key in GS and the contents of the file named by 'filename'.
- See set_contents_from_file method for details about the
- parameters.
-
- :type filename: string
- :param filename: The name of the file that you want to put onto GS
-
- :type headers: dict
- :param headers: Additional headers to pass along with the request to GS.
-
- :type replace: bool
- :param replace: If True, replaces the contents of the file if it
- already exists.
-
- :type cb: function
- :param cb: (optional) a callback function that will be called to report
- progress on the download. The callback should accept two integer
- parameters, the first representing the number of bytes that have
- been successfully transmitted from GS and the second representing
- the total number of bytes that need to be transmitted.
-
- :type cb: int
- :param num_cb: (optional) If a callback is specified with the cb
- parameter this parameter determines the granularity of the callback
- by defining the maximum number of times the callback will be called
- during the file transfer.
-
- :type policy: :class:`boto.gs.acl.CannedACLStrings`
- :param policy: A canned ACL policy that will be applied to the new key
- in GS.
-
- :type md5: A tuple containing the hexdigest version of the MD5 checksum
- of the file as the first element and the Base64-encoded version of
- the plain checksum as the second element. This is the same format
- returned by the compute_md5 method.
- :param md5: If you need to compute the MD5 for any reason prior to
- upload, it's silly to have to do it twice so this param, if present,
- will be used as the MD5 values of the file. Otherwise, the checksum
- will be computed.
-
- :type res_upload_handler: ResumableUploadHandler
- :param res_upload_handler: If provided, this handler will perform the
- upload.
- """
- fp = open(filename, 'rb')
- self.set_contents_from_file(fp, headers, replace, cb, num_cb,
- policy, md5, res_upload_handler)
- fp.close()

Powered by Google App Engine
This is Rietveld 408576698