php网站中水印怎么做,网站没备案可以做商城吗,wordpress新建网页,信息如何优化上百度首页公司目录
一、腾讯云对象存储使用
1、创建Bucket
2、使用web控制台上传和浏览文件
3、创建API秘钥
二、代码对接腾讯云COS#xff08;以Java为例#xff09;
1、初始化客户端
2、填写配置文件
3、通用能力类
文件上传
测试 一、腾讯云对象存储使用
1、创建Bucket
以Java为例
1、初始化客户端
2、填写配置文件
3、通用能力类
文件上传
测试 一、腾讯云对象存储使用
1、创建Bucket
1进入腾讯云官网注册登录用户进行实名认证开通“对象存储COS”服务进入管理控制台 2进入管理控制台找到存储桶列表 创建存储桶。
可以把存储桶理解为一个存储空间和文件系统类似都是根据路径找到文件或目录比如/test/aaajpg 。可以多个项目共用一个存储桶也可以每个项目一个。
点击创建存储桶注意地域选择国内离用户较近的位置。此处访问权限先选择公有读私有写”因为我们的存储桶要存储允许用户公开访问的代码生成器图片。而如果整个存储桶要存储的文件都不允许用户访问建议选择私有读写更安全。
默认告警一定要勾选因为对象存储服务的存储和访问流量都是计费的超限后我们要第一时间得到通知并进行相应的处理。
不过也不用太担心自己做项目的话一般是没人攻击你的而且对象存储很便宜正常情况下消耗的费用寥寥无几。 然后一直点击“下一步即可。 2、使用web控制台上传和浏览文件 开通成功后我们可以试着使用web控制台上传和浏览文件。 先上传一个文件点击上传。 上传文件后可以使用对象存储服务为我们生成的默认域名在线访问图片。 当然一般情况下我们会使用程序来操作存储桶。
3、创建API秘钥
进入访问管理中的访问密钥里的API秘钥管理地址为登录 - 腾讯云 点击新建秘钥 二、代码对接腾讯云COS以Java为例
1、初始化客户端
参考官方文档我们要先初始化一个 COS 客户端对象和对象存储服务进行交互。
对于我们的项目只需要复用一个COS 客户端对象即可所以我们可以通过编写配置类初始化客户端对象。
1使用idea打开后端项目在 config 目录下新建 CosClientConfig 类负责读取配置文件。并创建一个COS 客户端的 Bean。
代码如下
import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.region.Region;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 腾讯云对象存储客户端*/
Configuration
ConfigurationProperties(prefix cos.client)
Data
public class CosClientConfig {private String accessKey;private String secretKey;/*** 区域*/private String region;/*** 桶名*/private String bucket;Beanpublic COSClient cosClient() {// 初始化用户身份信息(secretId, secretKey)COSCredentials cred new BasicCOSCredentials(accessKey, secretKey);// 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224ClientConfig clientConfig new ClientConfig(new Region(region));// 生成cos客户端return new COSClient(cred, clientConfig);}
}
2、填写配置文件
一定要注意防止密码泄露所以我们新建application-local.yml文件并且在.gitignore中忽略该文件的提交这样就不会将代码等敏感配置提交到代码仓库了。
配置代码如下:
# 对象存储
# todo 需替换配置
cos:client:accessKey: xxxsecretKey: xxxregion: xxxbucket: xxx
可以通过如下方式分别获取需要的配置。
1accessKey/secretId、secretKey 密钥对在腾讯云网站中访问管理中的密钥管理中获取。
获取地址为登录 - 腾讯云 2region 表示地域名默认域名指 COS 的默认存储桶域名腾讯云中用户在 创建存储桶 时由系统根据存储桶名称和地域自动生成。不同地域的存储桶有不同的默认域名。
获取地址为对象存储 地域和访问域名-产品简介-文档中心-腾讯云 此处我的regin域名应该是ap-beijing。 3bucket是存储桶名可以从腾讯云网站的对象存储里点击存储桶列表里获取。 写完配置文件之后如下图所示 3、通用能力类
我们新建 CosManager 类提供通用的对象存储操作比如文件上传、文件下载等供其他代码比如 Service调用。
文件上传
参考官方文档的上传对象部分可以编写出文件上传的代码。地址 : https://cloud.tencent.com/document/product/436/65935
CosManager 新增两个上传对象的方法代码如下
import com.qcloud.cos.COSClient;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.waterai.water.config.CosClientConfig;
import java.io.File;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;/*** Cos 对象存储操作*/
Component
public class CosManager {Resourceprivate CosClientConfig cosClientConfig;Resourceprivate COSClient cosClient;/*** 上传对象* param key 唯一键* param localFilePath 本地文件路径* return*/public PutObjectResult putObject(String key, String localFilePath) {PutObjectRequest putObjectRequest new PutObjectRequest(cosClientConfig.getBucket(), key, new File(localFilePath));return cosClient.putObject(putObjectRequest);}/*** 上传对象* param key 唯一键* param file 文件* return*/public PutObjectResult putObject(String key, File file) {PutObjectRequest putObjectRequest new PutObjectRequest(cosClientConfig.getBucket(), key, file);return cosClient.putObject(putObjectRequest);}
}
2新建FileConstant类设置常量中的 COS 访问域名便于接下来测试访问已上传的文件。
代码如下:
/*** 文件常量*/
public interface FileConstant {/*** COS 访问地址* todo 需替换配置*/String COS_HOST https://xxxx.cos.ap-xxxx.myqcloud.com;
}
该域名可以在COS控制台的域名信息部分找到 测试
(1为了方便测试在 FileController 中编写测试文件上传接口。
核心流程是先接受用户上传的文件指定上传的路径然后调用 cosManager.putObject 方法上传文件到 COS 对象存储。上传成功后会返回一个文件的key其实就是文件路径便于我们访问和下载文件。
需要注意测试接口一定要加上管理员权限防止任何用户随意上传文件。
测试文件上传接口这个方法的代码如下
import cn.hutool.core.io.FileUtil;
import com.waterai.water.annotation.AuthCheck;
import com.waterai.water.common.BaseResponse;
import com.waterai.water.common.ErrorCode;
import com.waterai.water.common.ResultUtils;
import com.waterai.water.constant.FileConstant;
import com.waterai.water.constant.UserConstant;
import com.waterai.water.exception.BusinessException;
import com.waterai.water.manager.CosManager;
import com.waterai.water.model.dto.file.UploadFileRequest;
import com.waterai.water.model.entity.User;
import com.waterai.water.model.enums.FileUploadBizEnum;
import com.waterai.water.service.UserService;
import java.io.File;
import java.util.Arrays;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;/*** 文件接口*/
RestController
RequestMapping(/file)
Slf4j
public class FileController {Resourceprivate UserService userService;Resourceprivate CosManager cosManager;/** 其他方法。。。。。* *//** 测试文件上传* */AuthCheck(mustRole UserConstant.ADMIN_ROLE)PostMapping(/test/upload)public BaseResponseString testUploadFile(RequestPart(file) MultipartFile multipartFile) {// 文件目录String filename multipartFile.getOriginalFilename();String filepath String.format(/test/%s, filename);File file null;try {//上传文件file File.createTempFile(filepath, null);multipartFile.transferTo(file);cosManager.putObject(filepath, file);//返回可访问地址return ResultUtils.success(filepath);} catch (Exception e) {System.out.println(file upload error, filepath filepath , error e);throw new BusinessException(ErrorCode.SYSTEM_ERROR, 上传失败);} finally {if (file ! null) {//删除临时文件boolean delete file.delete();if (!delete) System.out.println(file delete error, filepath [l filepath);}}}
} 2修改启动配置李的active profiles使用local配置启动项。 然后点击启动按钮启动项目。
2打开 Swagger接口文档此处我的项目端口是8101因此就是http://localhost:8101/api/doc.html然后在file-controller中找到测试文件上传的这个接口开始进行测试。
首先点击选择文件从本地选择一个文件然后点击发送请求。 请求返回成功。
3在腾讯云官网上的控制台中可以看到已经有了test这个文件夹双击进入 就可以看到5.jpg这个文件已经上传成功了。