问题描述
我正在尝试将API请求GZipped响应按原样上传到AWS S3存储桶,并让SNowflake SNowpipe进一步将其上传到SNowflake数据库。我认为最好不要在上传之前解压缩结果,因为这是不必要的。
我正在使用这样的Python代码:
with requests.get(api_url,headers=headers,stream=True) as response:
if response.status_code != requests.codes.ok:
response.raise_for_status()
s3_client = BOTO3_SESSION.client('s3')
s3_client.upload_fileobj(Fileobj=response.raw,Bucket=s3_bucket,Key=s3_key)
在大多数情况下,这就像一个符咒,但是尽管上传的文件没有问题,但是SNowpipe有时不会上传文件。我怀疑是在文件完全上传之前发送了SNS通知。在一种情况下,S3文件的最新写入时间戳要比SNowflake函数@R_151_4045@ion_schema.copy_history
通知的PIPE_RECEIVED_TIME晚7秒钟。
我认为SNowpipe会尝试上载尚未完全写入S3的文件,并且一旦设计完成文件就不会再次上载,因为文件只有在首次创建时才由SNowpipe上载。 / p>
是否有一种方法可以确保在将响应上载到S3之前完全对其进行检索而又不解压缩响应主体?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)