草庐IT

java - 如何提高迭代 130 多个项目并将它们上传到 aws s3 的性能

我必须迭代130多个数据传输对象,每次都会生成一个json上传到awsS3。在没有改进的情况下,完成整个过程大约需要90秒。我尝试使用lamba而不是使用lamba,两者的结果相同。for(AbstractDTOdto:dtos){try{processDTO(dealerCode,yearPeriod,monthPeriod,dto);}catch(FileAlreadyExistsInS3Exceptione){failedToUploadDTOs.add(e.getLocalizedMessage()+":"+dto.fileName()+".json");}}dtos.stre

java - 如何将 Java OutputStream 上传到 AWS S3

我在内存中创建PDF文档作为OutputStream。这些应该上传到S3。我的问题是无法直接从OutputStream创建PutObjectRequest(根据thisthreadintheAWSdevforum)。我在Dropwizard中使用aws-java-sdk-s3v1.10.8应用程序。目前我能看到的两个解决方法是:将OutputStream复制到InputStream并接受使用两倍的RAM。将OutputStream通过管道传输到InputStream并接受额外线程的开销(参见thisanswer)如果我找不到更好的解决方案,我会选择#1,因为在我的设置中,看起来我比线程

java - 您如何通过 Java SDK 确定您在 AWS S3 中的权限?

我知道您可以尝试通过JavaSDK读取ACL或存储桶策略,但是是否有任何简单的方法来检查您是否具有对存储桶和/或其内容的读取和/或写入权限?我在AmazonS3类中没有看到任何“haveReadPermissions()”方法或任何内容,但也许我遗漏了什么?我很难相信没有简单的方法来检查权限。 最佳答案 我认为答案是没有万无一失的方法来做到这一点,至少目前还没有。您可以使用其他几种方法来尝试解决此问题。我最初尝试使用getBucketLocation()方法来确定我的给定用户是否具有对存储桶的读取权限,但事实证明你必须是存储桶的所有

java - 从 S3 下载大于 3Gb 的文件失败并显示 "SocketTimeoutException: Read timed out"

AWSJavaSDK1.9.3在Java服务器应用程序中从AWSS3下载许多大文件(~3Gb)时,我不时收到SocketTimeoutException,如下所示:Causedby:com.amazonaws.AmazonClientException:Unabletostoreobjectcontentstodisk:Readtimedoutatcom.amazonaws.services.s3.internal.ServiceUtils.downloadObjectToFile(ServiceUtils.java:270)atcom.amazonaws.services.s3.in

java - AWS S3 - 列出没有前缀的文件夹内的所有对象

我在检索AWSS3文件夹内的所有对象(文件名)时遇到问题。这是我的代码:ListObjectsRequestlistObjectsRequest=newListObjectsRequest().withBucketName(bucket).withPrefix(folderName+"/").withMarker(folderName+"/")ObjectListingobjectListing=amazonWebService.s3.listObjects(listObjectsRequest)for(S3ObjectSummarysummary:objectListing.getO

java - 如何重命名 Amazon S3 存储桶中的文件?

这个问题在这里已经有了答案:HowtorenamefilesandfolderinAmazonS3?(22个答案)关闭2年前。我正在尝试重命名S3存储桶中的文件。这是一个代码片段S3Objects3Obj=getS3Client().getObject(newGetObjectRequest(getBucketName(),fileName));//ErrorinAboveLineitselfgetS3Client().putObject(getBucketName(),newFileName,s3Obj.getObjectContent(),s3Obj.getObjectMetada

java - 如何使用 Java 读取 AWS S3 文件?

我尝试从AWSS3读取文件到我的java代码:Filefile=newFile("s3n://mybucket/myfile.txt");FileInputStreamfileInput=newFileInputStream(file);然后我得到一个错误:java.io.FileNotFoundException:s3n:/mybucket/myfile.txt(Nosuchfileordirectory)atjava.io.FileInputStream.open(NativeMethod)atjava.io.FileInputStream.(FileInputStream.jav

java - 从 S3 并行读取多个文件(Spark、Java)

我看到了一些关于此的讨论,但不太理解正确的解决方案:我想将几百个文件从S3加载到RDD中。这是我现在的做法:ObjectListingobjectListing=s3.listObjects(newListObjectsRequest().withBucketName(...).withPrefix(...));Listkeys=newLinkedList();objectListing.getObjectSummaries().forEach(summery->keys.add(summery.getKey()));//repeatwhileobjectListing.isTrunc

java - 在 Java 中使用 Lambda 函数的 AWS S3 事件通知

我正在尝试将Lambda函数用于S3Put事件通知。一旦我将任何新的JSON文件放入/添加到我的S3存储桶中,我的Lambda函数就会被调用。我面临的挑战是没有足够的文档来在Java中实现这样的Lambda函数。我找到的大部分文档都是针对Node.js的我想,应该调用我的Lambda函数,然后在该Lambda函数内,我想使用添加的json,然后将该JSON发送到AWSES服务。但是我应该为此使用哪些类?有人对此有任何想法吗?S3abdES都已设置并正在运行。lambda的自动生成代码是`@OverridepublicObjecthandleRequest(S3Eventinput,Co

如何在multer s3中获取req.body参数

varupload=multer({storage:multerS3({s3:s3,bucket:'bucket',metadata:function(req,file,cb){cb(null,{fieldName:file.fieldname});},key:function(req,file,cb){console.log('req.body',req.params.id);//notgettingconsole.log('req.body',req.body);//Notgettingparamherethatpassedinapi//Needtosavefileons3atspecif