OXIESEC PANEL
- Current Dir:
/
/
opt
/
gsutil
/
gslib
/
utils
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/11/2025 08:19:48 AM
rwxr-xr-x
📄
__init__.py
0 bytes
12/09/2024 05:26:03 PM
rw-r--r--
📁
__pycache__
-
02/11/2025 08:19:49 AM
rwxr-xr-x
📄
acl_helper.py
12.66 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
arg_helper.py
1.42 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
boto_util.py
26.01 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
cat_helper.py
6.22 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
cloud_api_helper.py
3.96 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
constants.py
4.83 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
copy_helper.py
181.74 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
encryption_helper.py
7 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
execution_util.py
1.8 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
hashing_helper.py
18.32 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
iam_helper.py
10.82 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
ls_helper.py
17.89 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
metadata_util.py
4.4 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
parallelism_framework_util.py
15.72 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
posix_util.py
18.66 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
retention_util.py
10.47 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
retry_util.py
3.11 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
rsync_util.py
1.84 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
shim_util.py
27.25 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
signurl_helper.py
5.34 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
stet_util.py
3.83 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
system_util.py
9.8 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
temporary_file_util.py
1.22 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
text_util.py
12.99 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
translation_helper.py
38.41 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
unit_util.py
7.73 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
update_util.py
4.88 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
user_agent_helper.py
2.41 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
version_check.py
2.21 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
wrapped_credentials.py
6.83 KB
12/09/2024 05:26:03 PM
rw-r--r--
Editing: metadata_util.py
Close
# -*- coding: utf-8 -*- # Copyright 2018 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Shared utility methods for manipulating metadata of requests and resources.""" from __future__ import absolute_import from __future__ import print_function from __future__ import division from __future__ import unicode_literals import six from gslib.third_party.storage_apitools import storage_v1_messages as apitools_messages def AddAcceptEncodingGzipIfNeeded(headers_dict, compressed_encoding=False): if compressed_encoding: # If we send accept-encoding: gzip with a range request, the service # may respond with the whole object, which would be bad for resuming. # So only accept gzip encoding if the object we are downloading has # a gzip content encoding. # TODO: If we want to support compressive transcoding fully in the client, # condition on whether we are requesting the entire range of the object. # In this case, we can accept the first bytes of the object compressively # transcoded, but we must perform data integrity checking on bytes after # they are decompressed on-the-fly, and any connection break must be # resumed without compressive transcoding since we cannot specify an # offset. We would also need to ensure that hashes for downloaded data # from objects stored with content-encoding:gzip continue to be calculated # prior to our own on-the-fly decompression so they match the stored hashes. headers_dict['accept-encoding'] = 'gzip' def CreateCustomMetadata(entries=None, custom_metadata=None): """Creates a custom MetadataValue object. Inserts the key/value pairs in entries. Args: entries: (Dict[str, Any] or None) The dictionary containing key/value pairs to insert into metadata. Both the key and value must be able to be casted to a string type. custom_metadata (apitools_messages.Object.MetadataValue or None): A pre-existing custom metadata object to add to. If one is not provided, a new one will be constructed. Returns: An apitools_messages.Object.MetadataValue. """ if custom_metadata is None: custom_metadata = apitools_messages.Object.MetadataValue( additionalProperties=[]) if entries is None: entries = {} for key, value in six.iteritems(entries): custom_metadata.additionalProperties.append( apitools_messages.Object.MetadataValue.AdditionalProperty( key=str(key), value=str(value))) return custom_metadata def GetValueFromObjectCustomMetadata(obj_metadata, search_key, default_value=None): """Filters a specific element out of an object's custom metadata. Args: obj_metadata: (apitools_messages.Object) The metadata for an object. search_key: (str) The custom metadata key to search for. default_value: (Any) The default value to use for the key if it cannot be found. Returns: (Tuple(bool, Any)) A tuple indicating if the value could be found in metadata and a value corresponding to search_key (the value at the specified key in custom metadata, or the default value if the specified key does not exist in the custom metadata). """ try: value = next((attr.value for attr in obj_metadata.metadata.additionalProperties if attr.key == search_key), None) if value is None: return False, default_value return True, value except AttributeError: return False, default_value def IsCustomMetadataHeader(header): """Returns true if header (which must be lowercase) is a custom header.""" return header.startswith('x-goog-meta-') or header.startswith('x-amz-meta-') def ObjectIsGzipEncoded(obj_metadata): """Returns true if the apitools_messages.Object has gzip content-encoding.""" return (obj_metadata.contentEncoding and obj_metadata.contentEncoding.lower().endswith('gzip'))