Java > 阿里云 > OSS > 文件读写

开通OSS : 右上角控制台 -> 搜索 -> OSS


创建Bucket


创建子用户 : 勾选API那个框

https://ram.console.aliyun.com/users


添加依赖 : Jdk9好像还需要添加更多依赖,懒得写

<dependency>
	  <groupId>com.aliyun.ossgroupId>
	  <artifactId>aliyun-sdk-ossartifactId>
	  <version>3.10.2version>
dependency>

需要填写的参数

@Value("${reggie.imgDownPath}")
String imgPath;

// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
@Value("${ali.endpoint}")
String endpoint;

// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
 @Value("${ali.accessKeyId}")
 String accessKeyId;

@Value("${ali.accessKeySecret}")
String accessKeySecret;
// 填写Bucket名称,例如examplebucket。

@Value("${ali.bucketName}")
String bucketName;
// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
// String objectName = "exampledir/exampleobject.txt"; Bucket中的存储路径

@Value("${ali.objDir}")
String objDir;

上传代码参考

public void uploadImg(File file){
        String objectName = objDir + file.getName();

        log.error(objectName);
        // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
        // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
//        String filePath = "D:\\localpath\\examplefile.txt";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, file);
            // 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。
            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
            metadata.setObjectAcl(CannedAccessControlList.PublicRead);
            putObjectRequest.setMetadata(metadata);

            // 上传文件。
            PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
//            System.out.println("!!!!!!!!!!!!!" + putObjectResult.getETag());
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }

下载

直接访问url,去文件管理看文件的【详情】,url是有规律的,后缀就是文件名,前面都是写死的。

  • 参考了其他的文章,做了简化,此Blog主要用于以后自己查看

你可能感兴趣的:(技巧,java,阿里云,开发语言)