当前位置: 首页 > 知识库问答 >
问题:

无法使用S3预签名url上传应用程序

宫元徽
2023-03-14

我正在使用AWS JAVA SDK自动调用设备场。我已经成功地创建了project、创建了upload并生成了S3预签名url,但现在我必须使用这个预签名url发送IPA文件。

这是我的代码,请让我知道我做错了什么。我认为我没有以正确的方式将文件发送到服务器。请共享使用预签名url发送文件的代码示例。我已经尝试了许多不同的方法将文件发送到设备场。

任何帮助将不胜感激。

AWSCredentials awsCredentials=new BasicAWSCredentials("sampleJRMSWANJS5KQ","sampleUSNnuC/fVSgvR9DSVr");
AWSDeviceFarm deviceFarmObj = new AWSDeviceFarmClient(awsCredentials);
CreateProjectRequest projReqObj = new CreateProjectRequest();
projReqObj.setName("JAVAHTTPAWSAPIPROJECT");
Project projObj = deviceFarmObj.createProject(projReqObj).getProject();
String projArn=projObj.getArn();

byte[] array = Files.readAllBytes(new File("/Users/abc/Documents/Card/Blue.ipa").toPath());
String data = new String(array,"UTF-8");
char[] charFile= data.toCharArray();

URL urlPreSigned = new URL(url);
HttpURLConnection connection=(HttpURLConnection)urlPreSigned.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("PUT");
OutputStreamWriter out = new OutputStreamWriter(
connection.getOutputStream());
out.write(charFile);
out.close();
int responseCode = connection.getResponseCode();
System.out.println("Service returned response code " + responseCode);

共有1个答案

陶高扬
2023-03-14

下面是从Device Farm Jenkins插件上传应用程序的代码参考。https://github.com/awslabs/aws-device-farm-jenkins-plugin/blob/master/src/main/java/org/jenkinsci/plugins/awsdevicefarm/AWSDeviceFarm.java#L367

如果您需要任何其他信息,请告诉我们

 类似资料:
  • 我试图使用S3预签名的PUT url执行文档上传。我使用java AWSSDK(GeneratePresignedUrlRequest.java)生成url。此url生成代码位于AWS API网关后面的lambda函数中。 然而,当我在Postman中复制生成的url时,我遇到了以下错误 生成的url是“https:// 关于在生成url时需要更正的内容,有什么建议吗?

  • 我正试图上传一个媒体文件(图片,任何扩展名jpg/png/jpeg或视频)到aws s3桶,从邮递员我创建了我的预签名url在我的后端如下 这成功地生成了一个url,但我似乎无法使用postman来测试它,这是我如何在postman中调整请求的截图 我所尝试的: 在上面的代码中,我尝试将签名版本v4添加到params中,但它给了我一个错误,说出了意外的关键字。我甚至尝试将其添加到aws配置和s3中

  • 问题内容: 我正在尝试使用预签名的URL将文件上传到Amazon的S3。我从生成URL的服务器获取URL,并将其作为JSON对象的一部分发送给我。我将URL作为字符串获取,如下所示: https://com-example-mysite.s3-us- east-1.amazonaws.com/userFolder/ImageName?X-Amz-Security- Token=xxfooxx%2F

  • 您好,我正在尝试将客户的图片直接上传到reactjs web app中的amazon s3。我在后端生成预签名的url,如下所示 生成的url看起来像这样。 https://s3.us-west-1.amazonaws.com/churchapp-la/5/ab49d601efed40e0a6de0509ab78c091.png?ContentType=image/png 在客户端我这样做 当我点

  • 我正在制作一个应用程序,让用户使用AWS S3将他们的视频上传到我们的终端。我使用服务器生成签名url并将其返回给客户端(Web浏览器),然后客户端使用该url上传到我们的后端。它工作得很好,但我有一个小问题,我们无法跟踪从浏览器开始的文件上传的进度。 那么,有什么方法可以让我们从服务器上获得上传进度呢?

  • 我正在开发一个特性,使用Angular/预签名url和API Gateway/lambda生成预签名url将文件上传到S3。 我的工作流描述如下: 从模板中获取选定文件 请求我的api(网关/lambda)使用文件名生成预签名的URL。 const body={filename:this.selectedfile.name}const preSignedUrl=await this.http.po