我正在开发一个连接到Tomcat / Jersey服务器的iOS应用程序。
我目前将图像上传到S3的方式是使用以下工作流程:
-使用POST请求多部分表单数据将图像上传到服务器上的temp文件夹
-从temp文件夹中获取文件,并使用Amazon Java SDK将其上传到S3-
将文件上传到S3后,从服务器上的temp文件夹中删除图像文件
我不希望我的iOS应用程序直接上传到S3,因为我想通过服务器执行一些操作,但是我认为这似乎是多余的,并且会使过程变慢。有没有一种方法可以直接通过Amazon SDK来流传输文件,而不必临时将其保存到我的服务器?
感谢您的建议。我通过直接通过Amazon SDK上传输入流来解决您的问题,如下所示:
byte[] contents = IOUtils.toByteArray(inputStream);
InputStream stream = new ByteArrayInputStream(contents);
ObjectMetadata meta = new ObjectMetadata();
meta.setContentLength(contents.length);
meta.setContentType("image/png");
s3client.putObject(new PutObjectRequest(
bucketName, fileName, stream, meta)
.withCannedAcl(CannedAccessControlList.Private));
inputStream.close();
inputStream
从iOS应用程序接收到我的服务器的输入流在哪里,并且s3client
是使用进行的AmazonS3Client
初始化BasicAWSCredentials
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句