阿里云OSS对象存储功能配置笔记
使用 Spring Boot 和 Python 进行阿里云OSS对象存储管理的配置和代码示例。
1. Spring Boot 阿里云OSS SDK配置
在 Spring Boot 项目中,首先需要在 pom.xml 中添加阿里云OSS SDK的依赖:
                      com.aliyun.oss    aliyun-sdk-oss    3.15.1  
                    lang-xml
                    
                        
                        
                    
                Java代码示例
                    package com.itheima.utils;   import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectResult;   import java.io.InputStream;   public class AliOssUtil {       // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。     private static final String ENDPOINT = "https://oss-cn-beijing.aliyuncs.com";     private static final String ACCESS_KEY_ID = "your-access-key-id";     private static final String ACCESS_KEY_SECRET = "your-access-key-secret";     private static final String BUCKET_NAME = "your-bucket-name";       public static String uploadFile(String objectName, InputStream in) throws Exception {           // 创建OSSClient实例。         OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);         String url = "";         try {             // 创建PutObjectRequest对象。             PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, objectName, in);               // 上传文件。             PutObjectResult result = ossClient.putObject(putObjectRequest);               // URL格式: https://bucket名称.区域节点/objectName             url = "https://" + BUCKET_NAME + "." + ENDPOINT.substring(ENDPOINT.lastIndexOf("/") + 1) + "/" + objectName;         } catch (OSSException | ClientException e) {             e.printStackTrace();         } finally {             if (ossClient != null) {                 ossClient.shutdown();             }         }           return url;     } } 
                    lang-java
                    
                        
                        
                    
                说明:
ACCESS_KEY_ID和ACCESS_KEY_SECRET为阿里云的访问凭证。BUCKET_NAME为存储桶名称。- 通过 
OSSClientBuilder来创建OSS客户端实例,并调用putObject()上传文件。 
2. Python 阿里云OSS SDK配置
在 Python 项目中,可以通过 config.ini 配置文件存储阿里云的访问凭证,并通过 oss2 SDK 上传文件。
config.ini 配置文件
                    [Aircraft] alibaba_cloud_access_key_id = your-access-key-id alibaba_cloud_access_key_secret = your-access-key-secret 
                    lang-ini
                    
                        
                        
                    
                Python代码示例
                    # -*- coding: utf-8 -*- import oss2 import configparser   # 读取配置文件 config = configparser.ConfigParser() config.read('config.ini')   # 从配置文件中获取Access Key ID和Access Key Secret access_key_id = config.get('Aircraft', 'alibaba_cloud_access_key_id') access_key_secret = config.get('Aircraft', 'alibaba_cloud_access_key_secret')   # 使用RAM用户的访问密钥配置访问凭证 auth = oss2.Auth(access_key_id, access_key_secret)   # Endpoint以华东1(杭州)为例,其它Region请按实际情况填写 endpoint = 'https://oss-cn-beijing.aliyuncs.com' bucket_name = 'your-bucket-name' bucket = oss2.Bucket(auth, endpoint, bucket_name)   def upload_file(object_name, file_path):     """上传文件到阿里云OSS"""     url = ""     try:         # 上传文件         with open(file_path, 'rb') as file_stream:             bucket.put_object(object_name, file_stream)           # 生成文件的访问URL         url = f"https://{bucket_name}.{endpoint.split('//')[1]}/{object_name}"         print("File uploaded successfully. URL:", url)     except oss2.exceptions.OssError as oe:         print("Error:", oe.message)     except Exception as e:         print("Caught an Exception:", e)       return url 
                    lang-python
                    
                        
                        
                    
                说明:
config.ini存储阿里云的访问凭证,以避免直接在代码中硬编码。- 使用 
oss2.Bucket对象将文件上传至OSS,并生成对应的文件URL。 
总结
Spring Boot通过引入阿里云OSS SDK依赖,使用Java代码实现文件上传功能,并返回文件的访问URL。Python通过configparser读取配置文件,结合oss2SDK 实现文件上传功能。
