通化市网站建设_网站建设公司_电商网站_seo优化
2025/12/25 0:03:18 网站建设 项目流程

1. 需求

https://cloud.tencent.com/document/product/436/112125

2. 由来

明确1:公司开发项目必须有上传图片,这些图片最初就和接口也就是java代码放在一起

明确2:一台服务器每秒读写有上限 =》 就好比厕所坑位 同时蹲坑有上限

明确3:考虑到性能问题 图片、样式、接口代码也就是java代码、包括数据库 得放到不同服务器

方案1;每个公司自己搞一个服务器

方案2:用服务器供应商的 (对象存储产品-专门放图片视频等等、云数据库)

回答:选择方案2,还有额外好处例如CDN、例如图片裁剪水印

CDN

大致使用流程

1-下模块

2-导入模块

3-修改配置信息

3. 腾讯云对象存储

步骤1:注册账号 https://cloud.tencent.com/document/product/436/112125

步骤2:个人中心、访问管理、用户列表、新建用户 -》 点击进去 操作 API密钥 (新增就可以看到secretID/secretKey)

https://console.cloud.tencent.com/cam

步骤3:左上角搜索产品对象存储、创建存储桶列表 https://console.cloud.tencent.com/cos/bucket

步骤4:根据步骤1、2、3操作 https://cloud.tencent.com/document/product/436/112125

import { CosError, QCloudCredential } from '@tencentcloud/cos';
import { CosXmlBaseService, CosXmlServiceConfig } from '@tencentcloud/cos';
import { PutObjectRequest, UploadTask } from '@tencentcloud/cos';
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { CosXmlUploadTaskResult } from '@tencentcloud/cos/src/main/ets/transfer/UploadTask';
import log from '@open/log';// 获取临时密钥(业务层控制获取的方式)
let credential : QCloudCredential= new QCloudCredential();
credential.secretID = "AKIDd8UebLvISSJ883qiQxJix0xjKl04zkJg";
credential.secretKey = "HPL6iBVdZIqEfPxLWdp5EGD2lLlHnBNS";
// credential.token = "token";
// startDate和expirationDate均为Date类型,此处通过毫秒时间戳构造Date
// credential.startDate = new Date();
// credential.expirationDate = new Date();@Entry
@Component
struct Test {@State img:string | undefined = ''build() {Column() {Image(this.img).width(300)Button('文档上传').onClick(async () => {log.init({close:false,tag:"✨"})let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;PhotoSelectOptions.maxSelectNumber = 1;let photoPicker = new photoAccessHelper.PhotoViewPicker();let photoSelectResult: photoAccessHelper.PhotoSelectResult = await photoPicker.select(PhotoSelectOptions);const localPath:string = photoSelectResult.photoUris[0];log.info('00000')log.info(localPath)// 服务配置let cosXmlServiceConfig = new CosXmlServiceConfig("ap-beijing"); // ✅// 初始化默认的ServiceCosXmlBaseService.initDefaultService(// this.context.getApplicationContext(),getContext(this),cosXmlServiceConfig,async () => credential)// 任何CosXmlRequest都支持这种方式,例如上传PutObjectRequest、下载GetObjectRequest、删除DeleteObjectRequest等// 以下用上传进行示例let putRequest = new PutObjectRequest("slj-1257200217", "temp1111111.jpg", localPath);  // ✅// credential为第一步“初始化密钥”中获取到的单次临时密钥putRequest.credential = credential;let task: UploadTask = CosXmlBaseService.default().upload(putRequest);task.onResult = {onSuccess: (request, result: CosXmlUploadTaskResult) => {// const match = result.accessUrl!.match(/user/.*/)// todo 上传成功后的逻辑// this.upload({avatar:result.picUploadResult?.originalInfo?.key as string})// this.upload({ avatar: match![0] })log.info(1111)log.info(result.accessUrl)this.img = result.accessUrl},onFail: (request, error: CosError) => {// todo 上传失败后的逻辑log.info(2222)log.info(error)}}task.start();// ===================})}}
}

鸿蒙开发者班级

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询