aliyun-log-python-sdk 0.9.38__tar.gz → 0.9.39__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aliyun_log_python_sdk-0.9.38/aliyun_log_python_sdk.egg-info → aliyun_log_python_sdk-0.9.39}/PKG-INFO +1 -1
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/auth.py +20 -8
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/object_response.py +0 -7
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/util.py +10 -1
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/version.py +1 -1
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39/aliyun_log_python_sdk.egg-info}/PKG-INFO +1 -1
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/LICENSE +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/README.md +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/_proto_py2/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/_proto_py2/log_logs_pb2.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/_proto_py2/log_logs_raw_pb2.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/acl_config.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/acl_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/async_sql_pb2.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/async_sql_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/common_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/compress.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/checkpoint_tracker.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/config.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/consumer_client.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/exceptions.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/fetched_log_group.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/heart_beat.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/preprocessor.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/shard_worker.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/tasks.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/worker.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer_group_request.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer_group_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/credentials.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/cursor_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/cursor_time_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/delete_async_sql_request.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/deletelogsrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/deletelogssresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/doc_logitem_converter.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/index_logstore_mappings.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/mapping_index_converter.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/migration_log.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/migration_manager.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/migration_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/migration_task.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/util.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_config_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/config_parser.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/etl_util.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/exceptions.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/restrict_config_parser.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/runner.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/settings.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_base.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_csv.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_json.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_kv.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_lookup.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_mv.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_regex.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/trans_comp/trans_set_field.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/transform/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/transform/condition_list.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/transform/condition_transform.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/transform/condition_util.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/transform/transform_base.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/transform/transform_list.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/transform/transform_meta.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/export_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/ext/__init__.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/ext/jupyter_magic.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/ext/syslogclient.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/external_store_config.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/external_store_config_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/get_async_sql_request.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/getcontextlogsresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/getdeletelogsstatusrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/getdeletelogsstatusresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/gethistogramsrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/gethistogramsresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/getlogsrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/getlogsresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/histogram.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/index_config.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/index_config_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/ingestion_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/job.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listdeletelogsstasksrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listdeletelogsstasksresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listlogstoresrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listlogstoresresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listtopicsrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listtopicsresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/log_logs_pb2.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/log_logs_raw_pb2.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logclient.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logclient_core.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logclient_operator.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logexception.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logger_hanlder.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logitem.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logstore_config_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logtail_config_detail.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logtail_config_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logtail_pipeline_config_detail.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logtail_pipeline_config_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/machine_group_detail.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/machinegroup_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/metering_mode_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/odps_sink.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/oss_sink.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/pluralize.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/project_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/proto.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/pulllog_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/putlogsrequest.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/putlogsresponse.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/queriedlog.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/rebuild_index_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/resource_params.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/resource_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/scheduled_sql.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/scheduled_sql_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/shard_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/shipper_config.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/shipper_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/sink.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/sql_instance_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/store_view.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/store_view_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/submit_async_sql_request.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/substore_config_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/tag_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/topostore_params.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/topostore_response.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun_log_python_sdk.egg-info/SOURCES.txt +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun_log_python_sdk.egg-info/dependency_links.txt +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun_log_python_sdk.egg-info/requires.txt +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun_log_python_sdk.egg-info/top_level.txt +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/setup.cfg +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/setup.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/tests/test_alert.py +0 -0
- {aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/tests/test_util.py +0 -0
|
@@ -68,13 +68,17 @@ class AuthV1(AuthBase):
|
|
|
68
68
|
headers['x-log-signaturemethod'] = 'hmac-sha1'
|
|
69
69
|
headers['Date'] = self._getGMT()
|
|
70
70
|
|
|
71
|
+
content_md5 = None
|
|
72
|
+
# we don't need content-md5 in signature if compute_content_hash is False
|
|
71
73
|
if body and compute_content_hash:
|
|
72
|
-
|
|
74
|
+
content_md5 = Util.cal_md5(body)
|
|
75
|
+
headers['Content-MD5'] = content_md5
|
|
76
|
+
|
|
73
77
|
if not credentials.get_access_key_secret():
|
|
74
78
|
return six.b('')
|
|
75
79
|
content = method + '\n'
|
|
76
|
-
if
|
|
77
|
-
content +=
|
|
80
|
+
if content_md5 is not None:
|
|
81
|
+
content += content_md5
|
|
78
82
|
content += '\n'
|
|
79
83
|
if 'Content-Type' in headers:
|
|
80
84
|
content += headers['Content-Type']
|
|
@@ -87,6 +91,8 @@ class AuthV1(AuthBase):
|
|
|
87
91
|
headers['x-log-date'] = headers['Date'] # bypass some proxy doesn't allow "Date" in header issue.
|
|
88
92
|
|
|
89
93
|
|
|
94
|
+
_EMPTY_CONTENT_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
|
|
95
|
+
|
|
90
96
|
class AuthV4(AuthBase):
|
|
91
97
|
def __init__(self, credentials_provider, region):
|
|
92
98
|
AuthBase.__init__(self, credentials_provider)
|
|
@@ -94,16 +100,18 @@ class AuthV4(AuthBase):
|
|
|
94
100
|
|
|
95
101
|
def sign_request(self, method, resource, params, headers, body, compute_content_hash=True):
|
|
96
102
|
current_time = datetime.utcnow().strftime("%Y%m%dT%H%M%SZ")
|
|
97
|
-
headers['Authorization'] = self._do_sign_request(method, resource, params, headers, body, current_time)
|
|
103
|
+
headers['Authorization'] = self._do_sign_request(method, resource, params, headers, body, current_time, compute_content_hash=compute_content_hash)
|
|
98
104
|
|
|
99
|
-
def _do_sign_request(self, method, resource, params, headers, body, current_time):
|
|
105
|
+
def _do_sign_request(self, method, resource, params, headers, body, current_time, compute_content_hash=True):
|
|
100
106
|
credentials = self.credentials_provider.get_credentials()
|
|
101
107
|
|
|
102
108
|
if credentials.get_security_token():
|
|
103
109
|
headers['x-acs-security-token'] = credentials.get_security_token()
|
|
104
110
|
|
|
105
|
-
content_sha256 =
|
|
106
|
-
|
|
111
|
+
content_sha256 = _EMPTY_CONTENT_SHA256
|
|
112
|
+
if compute_content_hash and body:
|
|
113
|
+
content_sha256 = sha256(body).hexdigest()
|
|
114
|
+
|
|
107
115
|
headers['x-log-content-sha256'] = content_sha256
|
|
108
116
|
headers['x-log-date'] = current_time
|
|
109
117
|
current_date = current_time[:8]
|
|
@@ -111,7 +119,11 @@ class AuthV4(AuthBase):
|
|
|
111
119
|
signed_headers = ''
|
|
112
120
|
for original_key, value in headers.items():
|
|
113
121
|
key = original_key.lower()
|
|
114
|
-
if
|
|
122
|
+
if (
|
|
123
|
+
key == "content-type"
|
|
124
|
+
or key == "host"
|
|
125
|
+
or Util._is_extra_sign_header(key)
|
|
126
|
+
):
|
|
115
127
|
canonical_headers[key] = value
|
|
116
128
|
headers_to_string = ''
|
|
117
129
|
for key, value in sorted(canonical_headers.items()):
|
|
@@ -55,13 +55,6 @@ class GetObjectResponse(LogResponse):
|
|
|
55
55
|
"""
|
|
56
56
|
return Util.h_v_td(self.headers, 'ETag', None)
|
|
57
57
|
|
|
58
|
-
def get_last_modified(self):
|
|
59
|
-
""" Get the last modified time of the object.
|
|
60
|
-
|
|
61
|
-
:return: string, last modified time, may be None if not set
|
|
62
|
-
"""
|
|
63
|
-
return Util.h_v_td(self.headers, 'Last-Modified', None)
|
|
64
|
-
|
|
65
58
|
def get_content_type(self):
|
|
66
59
|
""" Get the content type of the object.
|
|
67
60
|
|
|
@@ -40,6 +40,7 @@ def base64_decodestring(s):
|
|
|
40
40
|
s = s.encode('utf8')
|
|
41
41
|
return base64.decodebytes(s).decode('utf8')
|
|
42
42
|
|
|
43
|
+
_EXCLUDE_SIGN_HEADER_PREFIX = 'x-log-meta-'
|
|
43
44
|
|
|
44
45
|
class Util(object):
|
|
45
46
|
@staticmethod
|
|
@@ -90,10 +91,18 @@ class Util(object):
|
|
|
90
91
|
def canonicalized_log_headers(headers):
|
|
91
92
|
content = ''
|
|
92
93
|
for key in sorted(six.iterkeys(headers)):
|
|
93
|
-
if
|
|
94
|
+
if Util._is_extra_sign_header(key):
|
|
94
95
|
content += key + ':' + str(headers[key]) + "\n"
|
|
95
96
|
return content
|
|
96
97
|
|
|
98
|
+
@staticmethod
|
|
99
|
+
def _is_extra_sign_header(key):
|
|
100
|
+
lower_key = key.lower()
|
|
101
|
+
return lower_key.startswith("x-acs-") or (
|
|
102
|
+
lower_key.startswith("x-log-")
|
|
103
|
+
and not lower_key.startswith(_EXCLUDE_SIGN_HEADER_PREFIX)
|
|
104
|
+
)
|
|
105
|
+
|
|
97
106
|
@staticmethod
|
|
98
107
|
def url_encode(params):
|
|
99
108
|
for key, value in params.items(): # urllib.urlencode accept 8-bit str
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/_proto_py2/__init__.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/_proto_py2/log_logs_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/async_sql_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/consumer_client.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/heart_beat.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/preprocessor.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer/shard_worker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer_group_request.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/consumer_group_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/cursor_time_response.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/delete_async_sql_request.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/deletelogsrequest.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/deletelogssresponse.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/es_migration/util.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_config_response.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/__init__.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/config_parser.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/etl_util.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/etl_core/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/ext/jupyter_magic.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/ext/syslogclient.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/external_store_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/get_async_sql_request.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/getcontextlogsresponse.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/gethistogramsrequest.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/gethistogramsresponse.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/index_config_response.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/ingestion_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listlogstoresrequest.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listlogstoresresponse.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listtopicsrequest.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/listtopicsresponse.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/log_logs_raw_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logclient_operator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logstore_config_response.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logtail_config_detail.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/logtail_config_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/machine_group_detail.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/machinegroup_response.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/metering_mode_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/project_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/pulllog_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/rebuild_index_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/resource_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/scheduled_sql_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/shipper_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/sql_instance_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/store_view_response.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/submit_async_sql_request.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/substore_config_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/topostore_params.py
RENAMED
|
File without changes
|
{aliyun_log_python_sdk-0.9.38 → aliyun_log_python_sdk-0.9.39}/aliyun/log/topostore_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|