云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

MySQL数据库_域名免费注册0元注册_免费领

小七 141 0

将一个文件从PO上传到awss3而不受大小限制

我们在内部到云迁移中面临的众多挑战之一是集成方法的差异。尽管云上的解决方案在尽可能细化消息方面具有很大的灵活性,但内部部署解决方案必然会受到带宽、内存和消息大小等限制因素的影响。作为SAP PO开发的一个基本前提,返利模式,作为开发人员,返利怎么用,我们的目标是优化集成需求的许多因素,消息大小非常重要。

本文档旨在提供许多解决方案之一,我们可以适应将文件从PO传输到AWS s3存储桶,而不必担心文件的大小。AWS有一个api列表可供我们用来将文件上传到s3 bucket中。如上所述,AWS对接收到的文件的大小没有限制,但是这个问题在PO中非常突出。您可以在此处找到AWS API详细信息-https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html

亚马逊为我们提供了3个通过API上传文件到s3的选项

单块上传–https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html

多块上传–https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html

多部分上传–https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html

我们的文件大小限制为~900KB,这不是很有希望。亚马逊的单块上传是最好的选择。这在Rajesh PS的博客–

中有广泛的报道https://blogs.sap.com/2019/05/31/integration-amazon-simple-storage-service-amazon-s3-and-sap-ecc-v6.0-via-sap-pi-v7.5-using-aws-signature-v5-and-signing-algorithm-hmac-sha256/

对于PO来说,服务器,多块上传是不可行的,因为它需要一个HTTP连接,直到所有的块都打开已经被转移了。这给我们留下了多部分上传选项。我将试图涵盖我如何传输一个巨大的文件使用多部分上传。基本设计如下:

Pic 1:AWS Multipart Upload

下面是对s3api进行的3种调用中的每种调用的图示。

Pic 2:Initiate Multipart Upload

Pic 3:Upload Part

Pic 4:Complete Multipart Upload

IMPLEMENTATION IN PO

正如您可以看到的,以上所有通信都是异步同步的桥梁。我已经创建了4个ico–1个用于请求,路由到不同的api,3个不同的ico用于响应部分。所有3个响应ICO都将写入元数据文件。

请注意,我没有考虑文件中数据的任何数据转换、格式检查或映射。从技术上讲,除了完全的多部分上传外,它们都是传递场景,但我们必须使用映射来计算AWS API签名。

需要事先进行以下配置:

创建ESR对象

我们有两个不同的源系统和目标系统软件组件。所以这个场景是从软件组件1到软件组件2。此外,我们将使用一个公共结构将上传ID和etag等元数据内容写入元数据文件。

创建ID对象

我们将创建以下ID对象

1 ICO用于拆分文件1个ICO,用于发送异步同步桥的请求部分3个接收响应的ICO

单元测试

我只提供了框架和基本信息来获得这个要求。因为在请求部分有到多个接口的路由,数据呈现,我发现在这个场景中很难实现EOIO质量。因此,我必须引入600秒的强制延迟。这是根据上传文件的一部分所用的时间计算的,即6-7分钟。

另外,在写入完整的多部分上传后,元数据文件被存档。这是要上载的示例文件。

此大小的文件被拆分为多个大小略大于5 MB的文件。

元数据文件包含以下数据。这是由3个响应映射写入到文件中的。

结论

这样我们就不必担心任何大小的文件会上传到AWS s3中。但这里有几点需要考虑:

请随意提出任何改进/建议/反馈,因为这是由于时间紧迫。可以有更多的方法来优化这一点。

最后,我列出了我在开发这一需求时提到的链接/人员。

,云计算与大数据