关于amazonaws中S3服务URL失效(Request has expired)问题解决(上)

亚马逊提供的S3服务入手还挺简单的,前一段时间搞得S3,今天同事告知上传到S3的图片URL失效,大概访问URL情况如下:

一通查找,以下链接跟我问题一样,不过其中提到的S3 settings文件找不到,也就不了了之,有知道的大神欢迎告知。

https://stackoverflow.com/questions/15853928/django-compressor-heroku-s3-request-has-expired

以下是我的解决办法:

/**
     * @param @param  tempFile 目标文件
     * @param @param  remoteFileName 文件名
     * @param @return
     * @param @throws IOException    设定文件
     * @return String    返回类型
     * @throws
     * @Title: uploadToS3
     * @Description: 将文件上传至S3上并且返回url
     */
    public static String uploadToS3(File tempFile, String remoteFileName) throws IOException {
        try {
            //上传文件
            s3.putObject(new PutObjectRequest(bucketName, remoteFileName, tempFile).withCannedAcl(CannedAccessControlList.PublicRead));
            //设置过期时间 9700小时
            java.util.Date expiration = new java.util.Date();
            long expTimeMillis = expiration.getTime();
            expTimeMillis += 1000L * 60 * 60 * 24 * 7;
            expiration.setTime(expTimeMillis);
            //获取一个request
            GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(
                    bucketName, remoteFileName).withExpiration(expiration);
            //生成公用的url
            URL url = s3.generatePresignedUrl(urlRequest);
            System.out.println("=========URL=================" + url + "============URL=============");
            return url.toString();
        } catch (AmazonServiceException ase) {
            ase.printStackTrace();
        } catch (AmazonClientException ace) {
            ace.printStackTrace();
        }
        return null;
    }

S3服务上传文件默认返回url过期时间为15分钟,通过设置过期时间,可以延迟到7天。

如果想url有效保存7天以上,请看下篇关于amazonaws中S3服务URL失效(Requests that are pre-signed by SigV4 algorithm are valid for at most )问题解决(下)

参考链接:

使用AWS SDK for Java生成预先签名的对象URL

 

转载请注明出处,谢谢

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: software.amazon.awssdk s3 api文档是Amazon Web Services的S3服务的官方API文档。该文档提供了详细的S3 API操作指南和使用示例,包括对象存储、桶(Bucket)管理、访问控制、CORS配置等方面的内容。 该文档主要面向S3服务的开发者,通过对API操作指南的阅读,开发者可以熟悉S3服务的基本操作和使用方式,从而能够更加高效地开发S3相关应用。 除了操作指南之外,该文档还提供了代码示例和API参考,方便开发者编写和调试S3应用程序。所有API都有详细的参数说明和使用示例,以及方法的返回值。 总之,software.amazon.awssdk s3 api文档是S3开发者必备的宝典之一,对于想要了解和掌握S3服务的开发者来说,这本文档会极大地提高他们的开发效率和成果。 ### 回答2: software.amazon.awssdk s3 api文档是AWS S3 SDK的官方文档,其包括了S3 SDK所有的API方法和参数说明,以及示例代码。AWS S3 SDK是Amazon Web Services(AWS)提供的用于连接和操作AWS S3存储桶的软件开发工具包(SDK)。通过这个SDK,开发人员可以快速地将S3存储桶集成到他们的应用程序,也可以在应用程序增加对S3存储桶的功能。文档描述了各种操作S3存储桶的API方法,如创建、读取、更新和删除存储桶、管理S3存储桶的对象、设置存储桶权限等等。此外,文档还提供了详细的参数说明,让用户可以了解每个API方法的输入参数、返回参数、请求响应、异常处理等内容。对于想要使用AWS S3 SDK进行开发的用户,软件.amazon.awssdk s3 api文档是必备的参考资料,它能够帮助开发人员更好地了解S3 SDK的使用,提高开发效率和开发成功率。 ### 回答3: Software.amazon.awssdk s3 api文档是亚马逊AWS Java 开发工具包用于与亚马逊S3存储服务交互的应用程序接口(API)文档。该文档提供了详细的开发指南和API文档,帮助开发人员在Java语言下使用AWS S3服务。 该文档的开发指南分为三个部分,即入门、开发和高级。入门部分涵盖了如何设置开发环境、创建AWS S3存储桶以及基本的对象和桶操作。开发部分着重介绍了如何上传和下载大文件、实现上传和下载进度监控和使用加密功能。高级部分则进一步讲解了如何使用对象标记、复制对象和批量操作等高级应用。 在API文档部分,开发人员可以快速了解每个API的用途、入参和出参的具体信息,并可查看示例代码和错误代码,以便更好地理解和运用API。此外,文档还提供了完整的SDK参考文档和一些常见问题解决方案。 总的来说,软件.amazon.awssdk s3 api文档提供了非常详细的开发指南和API文档,加上丰富的示例代码和SDK文档,极大地方便了开发人员在Java语言下使用AWS S3服务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值