AWS-S3如何通过签名的URL来完成访问控制

本文介绍了如何利用AWS S3的签名URL进行访问控制,以防止资源被非法获取。S3作为高可用、高持久性的对象存储服务,广泛应用于云原生应用、数据湖、备份等场景。通过签名URL,可以限制资源的访问时间,确保安全性。
摘要由CSDN通过智能技术生成

S3(Amazon Simple Storage Service)是一种对象存储服务,提供可扩展性、数据可用性、安全性和性能。S3 可达到 99.999999999%(11 个 9)的持久性。客户使用 S3 作为云原生应用程序的主要存储;作为分析的批量存储库或“数据湖”;作为备份和恢复以及灾难恢复的目标;并将其与无服务器计算配合使用。

现在越来越多的客户使用S3作为网站的一个资源存储方案。在当前对于流量就是金钱而言的云计算时代,如何能够更好的使用公有云服务商提供的丰富PaaS服务的同时,如果不让网络上爬虫等工具肆意的盗取网站各种资源就是工程师们需要面对的问题。不过,不用担心AWS S3的对象签名机制就提供了一个非常好的选择。

通过S3的对象URL签名,可以避免将对象直接暴露在公网上,签名可以控制对象的可访问时间。

闲话不多说,我们来直接上代码

package com.sinnet.S3;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Iterator;
import java.util.Map;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.HttpMethod;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import com.amazonaws.services.s3.model.S3Object;

public class GeneratePresignedUrlAndUploadObject {
    public static void main(String[] args) throws IOException {
        S
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值