System.getenv()拿不到你配置的环境变量

谷粒商城p62

开通阿里云OSS云存储系统后,并新增子用户

复制代码
OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。

官网默认现在是配到电脑系统环境变量中,我也配置了,并且在cmd命令窗口看是有的,但是我的idea就是拿不到,我打断点调试看了也是拿不到,这时候我想起关了idea重开试一下,真的就拿到了

  1. RAM 控制台,创建使用永久 AccessKey 访问 的 RAM 用户,保存 AccessKey,然后为该用户授予 AliyunOSSFullAccess 权限。

  2. 使用 RAM 用户 AccessKey 配置环境变量。

  3. 在CMD中运行以下命令。

    复制代码
    setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
    setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
    1. 运行以下命令,检查环境变量是否生效。

      复制代码
      echo %OSS_ACCESS_KEY_ID%
      echo %OSS_ACCESS_KEY_SECRET%

    /**
    *单元测试上传图片OSS(文件流方式)
    */
    @Test
    public void testUpload() throws FileNotFoundException, com.aliyuncs.exceptions.ClientException {
    // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
    String endpoint = "oss-cn-guangzhou.aliyuncs.com";
    // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    System.out.println("..................." +System.getenv());
    EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
    // 填写Bucket名称,例如examplebucket。
    String bucketName = "gulimall-xx";
    // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
    String objectName = "xiaomi.png";
    // 填写本地文件的完整路径,例如D:\localpath\examplefile.txt。
    // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
    String filePath= "E:\xiaomi.png";
    // 填写Bucket所在地域。以华东1(杭州)为例,Region填写为cn-hangzhou。
    String region = "cn-guangzhou";

    复制代码
         // 创建OSSClient实例。
         // 当OSSClient实例不再使用时,调用shutdown方法以释放资源。
         ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
         clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
         OSS ossClient = OSSClientBuilder.create()
                 .endpoint(endpoint)
                 .credentialsProvider(credentialsProvider)
                 .clientConfiguration(clientBuilderConfiguration)
                 .region(region)
                 .build();
    
         try {
             InputStream inputStream = new FileInputStream(filePath);
             // 创建PutObjectRequest对象。
             PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
             // 创建PutObject请求。
             PutObjectResult result = ossClient.putObject(putObjectRequest);
             System.out.println("上传完成。。。。");
         } 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();
             }
         }
     }
相关推荐
一定要AK7 小时前
Spring 入门核心笔记
java·笔记·spring
A__tao7 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
KevinCyao7 小时前
java视频短信接口怎么调用?SpringBoot集成视频短信及回调处理Demo
java·spring boot·音视频
迷藏4947 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
wuxinyan1238 小时前
Java面试题47:一文深入了解Nginx
java·nginx·面试题
新知图书8 小时前
搭建Spring Boot开发环境
java·spring boot·后端
冰河团队8 小时前
一个拉胯的分库分表方案有多绝望?整个部门都在救火!
java·高并发·分布式数据库·分库分表·高性能
洛_尘8 小时前
Java EE进阶:Linux的基本使用
java·java-ee
无限进步_8 小时前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
宸津-代码粉碎机8 小时前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python