задний план
С развитием Интернета сегодня почти все поставщики облачных услуг предоставляют"Служба хранения объектов". Массивная, безопасная, недорогая и очень надежная служба облачного хранилища, подходящая для хранения файлов любого типа. Гибкое расширение емкости и вычислительной мощности, несколько типов хранения на выбор и всесторонняя оптимизация затрат на хранение.
Когда мы используем соответствующие продукты облачных поставщиков, нам нужно только ввести SDK, предоставленный соответствующей попыткой, и внедрить его в соответствии с его документацией по разработке. Однако, когда у нас есть доступ ко многим облачным поставщикам (или когда интерфейс может быть перенесен горизонтально), нам необходимо основывать интерфейс на целевом поставщике."Деструктивная модификация".
Ниже приведены примеры загрузки API SDK нескольких производителей:
Али Клауд
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 创建PutObjectRequest对象。
String content = "Hello OSS";
PutObjectRequest putObjectRequest = new PutObjectRequest("<yourBucketName>", "<yourObjectName>", new ByteArrayInputStream(content.getBytes()));
// 上传字符串。
ossClient.putObject(putObjectRequest);
// 关闭OSSClient。
ossClient.shutdown();
ОБЛАКО HUAWEI
String endPoint = "https://your-endpoint";
String ak = "*** Provide your Access Key ***";
String sk = "*** Provide your Secret Key ***";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);
obsClient.putObject("bucketname", "objectname", new File("localfile")); // localfile为待上传的本地文件路径,需要指定到具体的文件名
Семь Ниуюн
Configuration cfg = new Configuration(Region.region0());
UploadManager uploadManager = new UploadManager(cfg);
String accessKey = "your access key";
String secretKey = "your secret key";
String localFilePath = "/home/qiniu/test.png";
String key = null;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
Response response = uploadManager.put(localFilePath, key, upToken);
решение
Протокол Amazon S3
Amazon является первым поставщиком, предоставившим услуги хранения объектов, и сформулировал отраслевые стандарты, связанные с хранением файлов, что означает, что для доступа к поставщикам хранилищ файлов и промежуточному программному обеспечению, совместимым с этим протоколом, необходимо реализовать только протокол S3. Конечно, протокол S3 является не только стандартом требований к технической реализации, но также предъявляет особые требования к удобству использования.
Совместимость с местными поставщиками облачных услуг по протоколу S3.
название | адрес |
---|---|
Али Клауд | https://www.aliyun.com |
ОБЛАКО HUAWEI | https://www.huaweicloud.com |
Тенсент Облако | https://cloud.tencent.com |
Семь Ниуюн | https://www.qiniu.com |
Цзиньшань Клауд | https://www.ksyun.com |
как пользоваться
- Импорт зависимостей. Внедрение этой зависимости устраняет необходимость в использовании SDK поставщика облачных услуг.
<dependency>
<groupId>com.pig4cloud.plugin</groupId>
<artifactId>oss-spring-boot-starter</artifactId>
<version>0.0.2</version>
</dependency>
- Хранение профиля
oss:
path-style-access: false #请求路径是否 XXX/{bucketName}
endpoint: s3-cn-east-1.qiniucs.com
access-key: xxx # 云厂商提供的key
secret-key: xxx # 云厂商提供的密钥
bucketName: pig4cloud # 上文创建的桶名称
- действовать
@Autowire
private final OssTemplate ossTemplate;
ossTemplate.putObject(CommonConstants.BUCKET_NAME, fileName, file.getInputStream());
Поддерживает самодельное файловое хранилище, такое как MINIO
- Создать мини
docker run -p 9000:9000 --name minio1 \
-e "MINIO_ACCESS_KEY=lengleng" \
-e "MINIO_SECRET_KEY=lengleng" \
minio/minio server /data
- Настроить параметры минио
# 文件系统
oss:
path-style-access: true
endpoint: http://IP:9000
access-key: lengleng
secret-key: lengleng
bucketName: lengleng
- Просто загрузите с помощью OssTemplate
Адрес источника:
GitHub.com/ass-things/ОС…Добро пожаловать в форк-расширения