在我的应用程序中,我将获取 s3 文件的 url,例如:https://s3.amazonaws.com/account-update/input.csv https://s3.amazonaws.com/account-update/input.csv我必须下载它然后处理它。
我已经做了什么:
AmazonS3 s3 = new AmazonS3Client(credentials);
S3Object s3object = s3.getObject(new GetObjectRequest(
bucketName, key));
我可以通过提供存储桶名称和密钥来下载文件,但是如何使用 url(https://s3.amazonaws.com/account-update/input.csv https://s3.amazonaws.com/account-update/input.csv) only?
您可以通过标准的curl/wget 下载该文件,就像从Internet 下载任何其他文件一样。
然而,重要的部分是启用对对象的访问来自亚马逊 S3。几个选项:
-
使对象公开可读:这可以通过控制台或 CLI/API 来完成。但是,任何知道该 URL 的人都可以下载它。
-
创建一个Amazon S3 存储桶策略 http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html授予所需文件/目录/存储桶的读取访问权限。但是,同样,任何知道该 URL 的人都可以访问这些对象。
- 保持对象私有,但是use a 预签名 URL http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html向 URL 添加参数以证明您有权下载该对象。此预签名 URL 是有时间限制的,可以使用当前的 AWS 凭证通过几行代码生成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)