亚马逊服务器之上传图片和视频到S3

亚马逊服务器(AWS)个人账号可以免费使用12个月,可以在上面创建自己的服务器,虽然免费的服务器性能不是很好,但是个人使用就足够了。

搭建亚马逊的s3作为自己的图片或视频存储服务器。

1.申请创建AWS账号流程就不说了,选择创建S3桶作为存储自己的图片或视频的一个容器。

2.java实现上传文件到s3桶并且返回可以访问的url地址(如果是国际桶可能需要翻墙访问)

废话不多说,直接上代码。

import java.io.File;
import java.io.IOException;
import java.net.URL;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import com.amazonaws.services.s3.model.PutObjectRequest;

public class UploadTest {
    
    static AmazonS3 s3;
    static String AWS_ACCESS_KEY = "AKIAJF5HEUQ37WEDDNIA"; // 【你的 access_key】
    static String AWS_SECRET_KEY = "MQvT6p4iGSeKkKAlU52ColYczs/zjV8Zdr+taG0u"; // 【你的 aws_secret_key】

    String bucketName = "fallchat"; // 【你 bucket 的名字】 # 首先需要保证 s3 上已经存在该存储桶

    static {
        s3 = new AmazonS3Client(new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY));
        s3.setRegion(Region.getRegion(Regions.AP_NORTHEAST_1)); // 此处根据自己的 s3 地区位置改变
    }

    public String uploadToS3(File tempFile, String remoteFileName) throws IOException {
        try {
//            String bucketPath = bucketName + "/upload" ;
            String bucketPath = bucketName;
            s3.putObject(new PutObjectRequest(bucketPath, remoteFileName, tempFile)
                    .withCannedAcl(CannedAccessControlList.PublicRead));
            GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(bucketName, remoteFileName);
            URL url = s3.generatePresignedUrl(urlRequest);
            return url.toString();
        } catch (AmazonServiceException ase) {
            ase.printStackTrace();
        } catch (AmazonClientException ace) {
            ace.printStackTrace();
        }
        return null;
    }
    
    public static void main(String[] args) throws IOException {
        UploadTest upload=new UploadTest();
        File uploadFile = new File("D:\\file\\11\\videos\\6.mp4");
        String uploadKey = "6";
        String result=upload.uploadToS3(uploadFile,uploadKey);
        System.out.println(result);
    
    }
    
    
    @Test
    public void test(){
        File uploadFile = new File("c:/test.txt");
        String uploadKey = "test";
        uploadToS3(uploadFile,uploadKey);
    }
    
}

猜你喜欢

转载自blog.csdn.net/tylcheck/article/details/81538015