住宅房做旅店是什么网站/怎么做网络推广

住宅房做旅店是什么网站,怎么做网络推广,系统开发过程中的第一个文档,windows主机 wordpress 防盗链首先,下面这些信息从阿里云服务器OSS管理中获取 aliyun:oss:file:endpoint: "oss-cn-beijing.aliyuncs.com"keyid: "xxxxxxxxx"keysecret: "xxxxxxxxxxxx"bucketname: "xxxx"一、安装OSS npm install ali-oss 二、以下步…

首先,下面这些信息从阿里云服务器OSS管理中获取

aliyun:oss:file:endpoint: "oss-cn-beijing.aliyuncs.com"keyid: "xxxxxxxxx"keysecret: "xxxxxxxxxxxx"bucketname: "xxxx"

一、安装OSS

npm install ali-oss

二、以下步骤中解决引入ts校验的,有些地方比较多余,想试试也行,直接跳过吧

在 TypeScript 中,如果你遇到“无法找到模块 'ali-oss' 的声明文件”的错误,通常是因为该模块没有提供类型定义文件

解决方法:

1.安装类型定义:

如果 ali-oss 没有提供类型定义文件,你可以尝试安装 @types/ali-oss,但目前可能没有可用的类型定义。

npm install --save-dev @types/ali-oss
pnpm add -D @types/ali-oss

如果没有这个包,你可以手动创建一个类型定义文件。

2.手动创建类型定义:

  • 在你的项目中创建一个类型定义文件,例如 src/types/ali-oss.d.ts,并添加以下内容:
declare module 'ali-oss' {export interface OSSClient {put(object: string, file: any, options?: any): Promise<any>;// 添加其他需要的方法和属性}export default function OSS(options: {region: string;accessKeyId: string;accessKeySecret: string;bucket: string;}): OSSClient;
}
  • 更新 tsconfig.json:

    • 确保 TypeScript 配置文件 (tsconfig.json) 中包含了类型定义文件的路径:
{"compilerOptions": {"typeRoots": ["./node_modules/@types","./src/types"  // 添加自定义类型位置]}
}

3.扩展:

使用 require:

  • 如果你不想定义类型,可以使用 require 来引入模块,这样 TypeScript 不会检查类型:
const OSS = require('ali-oss');

总结:通过手动创建类型定义文件或使用 require,可以解决无法找到模块声明文件的问题。


扩展:

endpoint

  • oss-cn-beijing.aliyuncs.com:
    • oss:表示这是 OSS 服务。
    • cn:表示中国区域。
    • beijing:表示具体的地理区域,即北京。

其他区域示例

如果你有其他的 endpoint,可以根据以下格式进行解析:

  • 上海: 

oss-cn-shanghai.aliyuncs.com -> region: 'cn-shanghai'

  • 广州: 

oss-cn-guangzhou.aliyuncs.com -> region: 'cn-guangzhou'

  • 香港: 

oss-ap-hongkong.aliyuncs.com -> region: 'ap-hongkong'

确认区域:

如果不确定,可以在阿里云控制台中查看你的 Bucket 的具体区域,或者查阅阿里云的官方文档,以获取更详细的信息。


三、配置阿里云 OSS:

// 配置阿里云 OSS
// Bucket名称,用于标识OSS存储空间
const BUCKET_NAME = 'xxxxx';
// OSS的地域节点,用于访问OSS服务的域名
const ENDPOINT = 'oss-cn-beijing.aliyuncs.com';// 创建OSS客户端实例
const client = new OSS({region: 'oss-cn-beijing',    // 地域,例如:华北2(北京)accessKeyId: 'xxxxxxxxx',      // 访问密钥ID,用于身份验证accessKeySecret: 'xxxxxxxx',  // 访问密钥密码bucket: BUCKET_NAME,         // 指定操作的Bucketsecure: true,               // 使用HTTPS协议cname: false,              // 是否使用自定义域名,false表示使用阿里云默认域名
});
  • secure : 默认为 false ,表示使用 HTTP 协议。不写的话可能会存在安全风险,建议在生产环境中设置为 true 使用 HTTPS。
  • cname : 默认为 false ,表示使用阿里云默认域名。如果不需要自定义域名,可以不写这个配置。
  • timeout : 默认为 60000 (60秒)。如果不写,上传超时时间就是默认的 60 秒,对于大多数场景来说已经足够。

Bucket 名称:

这个一般是未公开的,所以需要再定一一个在外面,OSS里面那个删除即可,不需要,也无法使用

  1. 在对象的外面定义:
const BUCKET_NAME = 'xxxxx'; // 定义 Bucket 名称,这里换成你自己的

        2.并在需要生成文件 URL 时使用该常量,ENDPOINT同理:

// 生成文件的在线链接const url = `https://${BUCKET_NAME}.${ENDPOINT}/${fileName}`;

ENDPOINT:

在生成 URL 时,client.options.endpoint 是用于获取 OSS 访问地址的一部分。然而,client.options 本身可能并不包含 endpoint 属性。通常,endpoint 是在创建 OSS 客户端时指定的配置选项之一,但它并不会直接暴露在 options 中。

可以在创建 OSS 客户端时直接保存 endpoint,然后在生成 URL 时使用这个值。以下是如何实现的示例代码:

const ENDPOINT = 'oss-cn-beijing.aliyuncs.com'; // 替换为实际 Endpoint

四、上传文件总流程:

<script setup lang="ts">
import { ref } from 'vue';
import { showToast } from 'vant'; // 导入 Vant 的类型
import type { UploaderFileListItem } from 'vant'; // 正确导入类型
import OSS from 'ali-oss';// 声明 fileList,类型为 UploaderFilelistItem[]
const fileList = ref<UploaderFileListItem[]>([]);// oversize 事件处理函数
const maxFileSize = 50 * 1024 * 1024; // 50MB
const onOversize = (file: File) => {if (file.size > maxFileSize) {showToast(`文件大小不能超过 ${maxFileSize / (1024 * 1024)}MB`);return false;}return true;
};
// 配置阿里云 OSS
// Bucket名称,用于标识OSS存储空间
const BUCKET_NAME = 'xxxxx'; // 替换成实际的
// OSS的地域节点,用于访问OSS服务的域名
const ENDPOINT = 'oss-cn-beijing.aliyuncs.com';// 创建OSS客户端实例
const client = new OSS({region: 'oss-cn-beijing',    // 地域,例如:华北2(北京)accessKeyId: 'xxxxxxxx',      // 访问密钥ID,用于身份验证accessKeySecret: 'xxxxxxx',  // 访问密钥密码bucket: BUCKET_NAME,         // 指定操作的Bucketsecure: true,               // 使用HTTPS协议cname: false,              // 是否使用自定义域名,false表示使用阿里云默认域名timeout: 60000             // 超时时间,单位:毫秒(这里设置为60秒)
});
// - secure : 默认为 false ,表示使用 HTTP 协议。不写的话可能会存在安全风险,建议在生产环境中设置为 true 使用 HTTPS。
// - cname : 默认为 false ,表示使用阿里云默认域名。如果不需要自定义域名,可以不写这个配置。
// - timeout : 默认为 60000 (60秒)。如果不写,上传超时时间就是默认的 60 秒,对于大多数场景来说已经足够。// 上传文件的函数
const uploadFile = async (file: File) => {try {// 生成唯一文件名,包含文件夹路径// 获取当前日期const timestamp = new Date();const year = timestamp.getFullYear();const month = String(timestamp.getMonth() + 1).padStart(2, '0');const day = String(timestamp.getDate()).padStart(2, '0');const randomString = Math.random().toString(36).substring(2, 8);// 指定上传路径let filePath: string; // 添加变量声明// 判断文件类型const isImage = file.type.startsWith('image/');if (isImage) {// 添加随机字符串filePath = `png/${year}/${month}/${day}/${randomString}_${file.name}`;} else {filePath = `video/${year}/${month}/${day}/${randomString}_${file.name}`;}// 上传文件到 OSS// client.put() 方法会将文件上传到 OSS,其中:// - filePath 参数指定了文件在 OSS 中的存储路径//   - file 参数是要上传的文件对象const result = await client.put(filePath, file);// 生成文件的在线链接const url = `https://${BUCKET_NAME}.${ENDPOINT}/${filePath}`;console.log('上传成功:', result);console.log('文件在线链接:', url);return url;} catch (error) {console.error('上传失败:', error);return null; // 或者返回一个默认的错误链接}
};const handleSubmit = async () => {fileList.value.forEach(item => {// 使用类型断言将 item.file 转换为 File 类型const file = item.file as File;uploadFile(file)});
};// 提交文件函数
const submitFile = async () => {handleSubmit()
};</script>
<template><div><van-uploader ref="mediaUploader" v-model="fileList" multiple class="uploader-container" accept="image/*,video/*"max-count="6" @oversize="onOversize" /><button @click="submitFile">点击上传</button></div>
</template><style scoped>
/* 添加必要的样式 */
</style>

上传可能出现的问题:

  • 如果跨域,这个时候要去服务器配置允许访问的IP地址,防止出现跨域报错,这个是需要去官网到自己的服务器去配置的

关键点总结:

  • 获取服务器相关配置信息
  • 安装OSS
  • 使用自带的put方法上传图片
const result = await client.put(filePath, file);
  • 图片路径就是仓库路径拼接的,使用put方法上传会自动到那个仓库路径下去存 
  • 服务器需要配置跨域

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

huggingface NLP主要知识点以及超级详解使用

1.安装huggingface依赖库 pip install transformers pip install datasets pip install pytorch pip install tokenizers pip install diffusers pip install accelerate pip install evaluate pip install optimum pip install pillow pip install requests pip install gr…

SQL注入练习场:PHPStudy+SQLI-LABS靶场搭建教程(零基础友好版)

注意&#xff1a;文中涉及演示均为模拟测试&#xff0c;切勿用于真实环境&#xff0c;任何未授权测试都是违法行为&#xff01; 一、环境准备 下载PHPStudy 官网下载地址&#xff1a;https://www.xp.cn/php-study&#xff08;选择Windows版&#xff09; 安装时建议选择自定…

现今大语言模型性能(准确率)比较

现今大语言模型性能(准确率)比较 表头信息:表的标题为“大语言模型性能比较结果”(英文:Table 1: Large Language Model Performance Comparison Results),表明该表是用于对比不同大语言模型的性能。列信息: 模型:列出参与比较的不同大语言模型名称,包括LLAMA3(70B)…

Docker创建自定义网桥并指定网段

前言 docker0是Docker默认网络的核心组件, 通过虚拟网桥和NAT技术, 实现了容器间的通信以及容器与外部网络的交互。然而, docker0网段是固定的(通常是172.17.0.0/16), 为了更灵活地管理容器网络&#xff0c;Docker支持创建自定义网桥&#xff0c;允许用户指定网段。 例如, 在…

蓝桥杯每日一题:第一周周四哞叫时间

蓝桥杯每日一题&#xff1a;第一周周四哞叫时间 疑惑&#xff1a;如何把复杂度控制在Q&#xff08;n&#xff09;&#xff0c;怎么枚举a和b&#xff0c;longlong的形式又该怎么输入&#xff08;考虑用string&#xff09; 思路&#xff1a;枚举倒数第二个b前面有多少个a 这是一…

在 macOS 使用 .pem 私钥免密登录腾讯云服务器

前言 在腾讯云上创建服务器时&#xff0c;如果选择了「密钥对」的登录方式&#xff0c;就会得到一个 .pem 文件作为私钥。很多小伙伴在使用 macOS 系统时&#xff0c;可能不清楚如何使用这个私钥文件来 SSH 免密登录远程服务器。本文将详细介绍如何在本地配置 .pem 私钥文件并…

腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台

今天&#xff0c;在腾讯的 Shiply 平台看 Flutter 动态化自研框架 Conch 时&#xff0c;在侧边栏看到了有「跨端开发框架」的介绍&#xff0c;点开发现有两个产品&#xff1a; Hippy&#xff1a;面向前端技术栈的跨端开发框架&#xff0c;Web原生开发体验&#xff0c;支持 Rea…

播放器系列3——解码

FFmpeg解码过程详解 解码流程 #mermaid-svg-FGu92IEtteOdO2tO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FGu92IEtteOdO2tO .error-icon{fill:#552222;}#mermaid-svg-FGu92IEtteOdO2tO .error-text{fill:#5522…

SimPO算法-Simple Preference Optimizationwith a Reference-Free Reward

偏好优化&#xff08;preference optimization &#xff09;算法大全&#xff1a; 本篇介绍下SimPO SimPO&#xff08;Simple Preference Optimization&#xff09;的设计核心在于简化偏好优化过程&#xff0c;同时提升模型的表现。其设计主要围绕两个关键点展开&#xff1a;长…

AIGC时代:如何快速搞定Spring Boot+Vue全栈开发

文章目录 一、Spring Boot基础二、Vue.js基础三、Spring Boot与Vue.js集成四、性能优化与最佳实践《快速搞定Spring BootVue全栈开发》 内容简介作者简介目录前言/序言本书内容本书特点读者对象 随着人工智能生成内容&#xff08;AIGC&#xff09;技术的迅速发展&#xff0c;…

探秘基带算法:从原理到5G时代的通信变革【六】CRC 校验

文章目录 2.5 CRC 校验2.5.1 前言2.5.2 CRC算法简介2.5.3 CRC计算的详细过程2.5.4 CRC校验的两种方法详解**分离比较法****整体运算法****不同位出错与余数的关系****总结** 2.5.5 CRC计算的C实现及工具介绍**C实现CRC计算****CRC计算工具推荐** **2.5.6 总结&#xff1a;CRC校…

探究高空视频全景AR技术的实现原理

1. 引言 笔者认为现阶段AR技术的应用是还是比较坑爹的&#xff0c;大都是噱头多但是实用的成分少&#xff0c;拿出来做做DEMO是可以&#xff0c;但是难以在实际的项目中落地产生实际的经济价值。一方面是很难在业务上难以找到合适的应用场景&#xff08;可能管线相关的项目算一…

深度解析 | 2025 AI新突破,物理信息神经网络(PINN):Nature级顶刊的「科研加速器」,70份源码论文速取!

&#x1f525; 为什么全球顶尖实验室都在押注PINN&#xff1f; 过去一年&#xff0c;物理信息神经网络&#xff08;PINN&#xff0c;Physics-Informed Neural Networks&#xff09;以「现象级」姿态席卷科研圈&#xff1a;不仅在NeurIPS、ICML等顶会横扫15%相关论文&#xff0c…

LeetCode热题100JS(37/100)第七天|排序链表|合并K个升序链表|LRU缓存|二叉树的中序遍历|二叉树的最大深度|对称二叉树

148. 排序链表 题目链接&#xff1a;​​​​​​​148. 排序链表 难度&#xff1a;中等 刷题状态&#xff1a;1刷 新知识&#xff1a; - dic.reduceRight((t,c)>(c.nextt,c),null) 方法从数组的末尾开始执行 解题过程 思考 示例 1&#xff1a; 输入&#xff1a;head […

课程2. 机器学习方法论

课程2. 机器学习方法论 训练算法并评估其质量将样本分成训练和测试。分层 交叉验证方法sklearn 接口算法模型训练模型的应用质量评估 数据预处理标准缩放Violinplot 数据集使用模型Pipeline 在上一讲中&#xff0c;我们讨论了机器学习专家面临的挑战。无论解决的问题类型和解决…

mysql表分区

本文简述了mysql表分区的作用和特点&#xff0c;又演示了mysql表分区的创建过程&#xff0c;详细演示了指定不同分区目录时的处理办法。由于表分区对crud操作是透明的&#xff0c;对于普通开发同学其实不用过多关注&#xff0c;但是本着学习的态度&#xff0c;在分库分表等高大…

Nessus安装

Nessus&#xff1a;https://pan.quark.cn/s/f5fb09b6d4fb 1.软件安装 点击安装&#xff0c;剩下的下一步即可。 直接下一步安装即可 2.Web端安装 会弹出一个web窗口 开始初始化 创建用户 开始初始化 3.Cracker 会弹一个黑窗口 运行完&#xff0c;回车即可。访问https://loc…

26-小迪安全-模块引用,mvc框架,渲染,数据联动0-rce安全

先创建一个新闻需要的库 这样id值可以逐级递增 然后随便写个值&#xff0c;让他输出一下看看 模板引入 但是这样不够美观&#xff0c;这就涉及到了引入html模板 模板引入是html有一个的地方值可以通过php代码去传入过去&#xff0c;其他的html界面直接调用&#xff0c;这样页…

Linux网络编程(20250301)

网络通信&#xff1a;进行不同主机的进程间通信 解决硬件与软件的互联互通 主机-->交换机-->路由器-->广域网-->路由器-->交换机-->主机 IP地址&#xff1a;区分不同主机 MAC地址&#xff1a;计算机硬件地址 端口号&#xff1a;区分主机上的不同进程 1…

基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 EM算法 E步:期望步 M步:最大化步 4.2 GMM模型 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 程序运行配置环境&#xff1a; 人工智能算法…