当前位置: 首页 > wzjs >正文

动态网站如何维护万网域名查询接口

动态网站如何维护,万网域名查询接口,长沙网站seo收费标准,宁波批发网站制作阿里云OSS服务 1.创建OSS数据桶 首先在阿里云对象存储服务OSS中创建好对应的数据桶,我的是gezishan-bucket1 2.创建AccessKey 认识AccessKey? 访问密钥AccessKey(简称AK)是阿里云提供给用户的永久访问凭据,由Acces…

阿里云OSS服务

1.创建OSS数据桶

首先在阿里云对象存储服务OSS中创建好对应的数据桶,我的是gezishan-bucket1

在这里插入图片描述

2.创建AccessKey

认识AccessKey?

访问密钥AccessKey(简称AK)是阿里云提供给用户的永久访问凭据,由AccessKey ID和AccessKey Secret组成的一组密钥对

  • AccessKey ID:用于标识用户。
  • AccessKey Secret:是一个用于验证您拥有该AccessKey ID的密码。

AccessKey ID和AccessKey Secret根据算法由访问控制(RAM)生成,阿里云对AccessKey ID和AccessKey Secret的存储及传输均进行加密。

AccessKey不用于控制台登录,而是用于通过开发工具(API、CLI、SDK、Terraform等)访问阿里云时,发起的请求会携带AccessKey ID和AccessKey Secret加密请求内容生成的签名,进行身份验证及请求合法性校验。

AccessKey最佳实践

  • 强烈建议不要给阿里云账号(主账号)创建AccessKey。

    阿里云账号(主账号)默认拥有当前账号下所有云资源的Administrator权限,且无法修改。阿里云账号(主账号)的AccessKey泄露会威胁该账号下所有资源的安全。为保证账号安全,强烈建议您不要给阿里云账号(主账号)创建AccessKey,建议您创建专用于API访问的RAM用户并创建对应的AccessKey,完成最小化授权后,通过编程的方式访问阿里云资源。

  • 减少创建永久AccessKey,优先采用STS Token临时凭证方案,降低凭证泄露的风险。

  • 妥善保管AccessKey ID和AccessKey Secret,不要将AccessKey信息随意分享给其他人,或记录在公开的文档中。

  • 避免在代码中写入明文AccessKey信息。

  • AccessKey不再使用时及时禁用。

  • 定期轮转AccessKey,一个RAM用户启用一把AccessKey后另一把仅用于轮转。

  • 为RAM用户仅授予必要的最小权限。

操作步骤

  1. 登录RAM控制台。
  2. 在左侧导航栏,选择****身份管理** > *用户***。
  3. 用户页面,单击目标RAM用户名称。
  4. 认证管理页签下的AccessKey区域,单击创建AccessKey

在这里插入图片描述

授权访问

创建AccessKey相当于创建了一个子用户,要想能访问指定的数据桶,还要为指定的子用户授权,

后续每次上传文件都要携带AccessKeyId进行鉴权,若该AccessKeyId没有访问权限项目将报错。

在这里插入图片描述

选择授权的子用户

在这里插入图片描述

3.项目中使用OSS云服务

这是阿里云官网提供的demo

import java.io.*;
import java.util.Random;import com.aliyun.oss.*;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.ObjectListing;
import com.aliyun.oss.model.OSSObjectSummary;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;public class OssJavaSdkQuickStart {/** 生成一个唯一的 Bucket 名称 */public static String generateUniqueBucketName(String prefix) {// 获取当前时间戳String timestamp = String.valueOf(System.currentTimeMillis());// 生成一个 0 到 9999 之间的随机数Random random = new Random();int randomNum = random.nextInt(10000); // 生成一个 0 到 9999 之间的随机数// 连接以形成一个唯一的 Bucket 名称return prefix + "-" + timestamp + "-" + randomNum;}public static void main(String[] args) throws com.aliyuncs.exceptions.ClientException {// Endpoint以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com,其它Region请按实际情况填写。String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";String bucketName = generateUniqueBucketName("demo");// 填写Bucket所在地域。以华东1(杭州)为例,Region填写为cn-hangzhou。// 关于OSS支持的Region与Endpoint的对应关系,请参见https://www.alibabacloud.com/help/zh/oss/user-guide/regions-and-endpoints。String region = "cn-hangzhou";// 从环境变量中获取访问凭证。运行本代码示例之前,请先配置环境变量EnvironmentVariableCredentialsProvider credentialsProvider =CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();// 创建OSSClient实例。// 当OSSClient实例不再使用时,调用shutdown方法以释放资源。ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();// 显式声明使用 V4 签名算法clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);OSS ossClient = OSSClientBuilder.create().endpoint(endpoint).credentialsProvider(credentialsProvider).region(region).build();try {// 1. 创建存储空间(Bucket)ossClient.createBucket(bucketName);System.out.println("1. Bucket " + bucketName + " 创建成功。");// 2. 上传文件String objectName = "exampledir/exampleobject.txt";String content = "Hello OSS";ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));System.out.println("2. 文件 " + objectName + " 上传成功。");// 3. 下载文件OSSObject ossObject = ossClient.getObject(bucketName, objectName);InputStream contentStream = ossObject.getObjectContent();BufferedReader reader = new BufferedReader(new InputStreamReader(contentStream));String line;System.out.println("3. 下载的文件内容:");while ((line = reader.readLine()) != null) {System.out.println(line);}contentStream.close();// 4. 列出文件System.out.println("4. 列出 Bucket 中的文件:");ObjectListing objectListing = ossClient.listObjects(bucketName);for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {System.out.println(" - " + objectSummary.getKey() + " (大小 = " + objectSummary.getSize() + ")");}// 5. 删除文件ossClient.deleteObject(bucketName, objectName);System.out.println("5. 文件 " + objectName + " 删除成功。");// 6. 删除存储空间(Bucket)ossClient.deleteBucket(bucketName);System.out.println("6. Bucket " + bucketName + " 删除成功。");} 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 | IOException 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();}}}
}

预配置

引入依赖

然后再项目的pom.xml中导入依赖:

 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version></dependency>

配置项

在实际开发中通常将一些配置信息在application.yml中配置。

需要配置关键的4个要素,分别是endpoint(服务器域名),bucketName(数据桶名),accessKeyId(连接秘钥),accessKeySecret(秘钥密码)

aliyun:oss:endpoint: xxxxxxxbucketName: xxxxxxxxxxxxxxaccessKeyId: xxxxxxxxxxxxxxaccessKeySecret: xxxxxxxxxxxxxxxxxxxxxxx

入门API

连接OSS对象

OSS ossclick = new OSClientBuilder().build(String endpoint,String accessKeyId,String accessKeySecret);
//上面三个参数均为String类型,含义见上

文件上传方法

OSS.putObject(String bucketName,String fileName,InputStream inputStream);
/*
bucketName 数据桶名
fileName 上传后的文件名
inputStream 待上传文件输入流
*/

关闭连接

OSS.shutdown()

工具类

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliyunOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;public String upload(MultipartFile file) throws IOException {//获取上传文件的输入流InputStream inputStream = file.getInputStream();//设置文件名,避免覆盖String originalFilename = file.getOriginalFilename();String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));//上传文件到ossOSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, fileName, inputStream);  //文件上传方法//获取文件访问地址String url = "https://" + bucketName + "." + endpoint + "/" + fileName;//关闭ossClientossClient.shutdown();return url;}
}

service层调用

@Service
public class OSSFileServiceImpl extends ServiceImpl<MyFileMapper, MyFile> implements FileUploadService {@Resourceprivate AliyunOssUtil aliyunOssUtil;@Overridepublic Result saveFile(MultipartFile file) {try{String url = aliyunOssUtil.upload(file);return Result.success(url);}catch (Exception e){e.printStackTrace();return Result.error("文件上传失败,请联系管理员"+e.getMessage());}}
}
http://www.dtcms.com/wzjs/398437.html

相关文章:

  • 企业咨询管理是做什么的南京seo整站优化技术
  • 微网站建设第一步是进行什么的设置百度官方推广
  • 怎么做网站排名靠前百度一下你就知道手机版官网
  • 建站工作室 网站建设工作室关键词排名优化品牌
  • 长沙电子商务网站建设人民日报官网
  • 尼罗发表小说做的的网站是哪个semester什么意思
  • 淄博网站建设 招聘百度账号批发网
  • 网站推广怎样做网络推广员是什么
  • 静态网页制作技术网站seo教程
  • 如何建立新闻网站小红书seo关键词优化多少钱
  • 网站建设链接演示国内专业的seo机构
  • yeti2.0 wordpress湖南网站营销seo多少费用
  • 电商网站建设求职定位北京seo的排名优化
  • 做热点图现在用什么网站广州网站快速排名优化
  • 网页设计制作一个网站山西网络营销seo
  • ss网站模板免费下载百度指数的基本功能
  • 成都网络优化公司排行榜石家庄百度快照优化
  • 微信怎么做网站的动图百度推广管家登录
  • 如何利用网站推广业务站长统计app
  • b站视频播放量网站北京新闻最新消息
  • 网站开发综合设计报告南京seo公司排名
  • o2o平台系统开发什么是seo如何进行seo
  • 网站技术有哪些网络营销推广的特点
  • 有哪些推广平台和渠道超级推荐的关键词怎么优化
  • 怎样做分类网站semir是什么意思
  • js网站分页怎么做安卓优化大师app
  • 网站建设怎么上传数据seo引擎优化是做什么的
  • 外围网站代理怎么做广东省白云区
  • 成都网站设计的公司手机关键词seo排名优化
  • 网站建设注意事项 南京谷歌手机版下载安装