Vba 通过RESTAPI发送CSV文件
我不是开发人员,但最近一直在使用VBA、Python和AWS进行大量自动化工作。最近,我开始学习和使用AWS中的API 我一直在尝试通过RESTAPI上传CSV文件,但它并没有按预期工作 基本上,我使用API网关来设置我的API,该API触发Lambda函数将文件上载到S3存储桶 当我在Postman中测试我的API时,它工作得很好,我只需将标题设置为键:“内容类型”和值:“应用程序/csv”,然后在主体部分选择“二进制”并浏览我想要上传的csv文件 但问题是,当我试图从我的应用程序(或从使用原始文本而不是二进制的Postman)调用api时,我发送了以下正文(也尝试了不使用双引号的方式,但也不起作用): --数据二进制“\file location\file name.csv” api返回一个成功代码,但当我在S3中打开文件时,内容是“-data binary”\file location\file name.csv”,而不是我选择的实际文件内容 这是我在VBa中用来调用API的代码:Vba 通过RESTAPI发送CSV文件,vba,api,rest,curl,aws-api-gateway,Vba,Api,Rest,Curl,Aws Api Gateway,我不是开发人员,但最近一直在使用VBA、Python和AWS进行大量自动化工作。最近,我开始学习和使用AWS中的API 我一直在尝试通过RESTAPI上传CSV文件,但它并没有按预期工作 基本上,我使用API网关来设置我的API,该API触发Lambda函数将文件上载到S3存储桶 当我在Postman中测试我的API时,它工作得很好,我只需将标题设置为键:“内容类型”和值:“应用程序/csv”,然后在主体部分选择“二进制”并浏览我想要上传的csv文件 但问题是,当我试图从我的应用程序(或从使用原
Dim ws As Worksheet
Dim URL, env, msg, result As String
Dim objHTTP As Object
Set ws = ThisWorkbook.Worksheets("Sheet1")
URL = "https://api-url"
msg = "--data-binary ""\\file_location\file_name.csv"""
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "Content-Type", "application/csv"
objHTTP.send (msg)
result = objHTTP.responseText
'getResponse
ws.Range("s3_api_resp").Value = result
Set objHTTP = Nothing
上传文件应该直接上传到AmazonS3,我之所以这么说,是因为AWS Lambda有一个6MBs的调用负载 上传到S3有几种方式,以下是三种方式: