Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云 COS(对象存储)解决文件转化为网页链接的问题

腾讯云 COS(对象存储)解决文件转化为网页链接的问题

原创
作者头像
用户4949086
发布于 2025-02-28 06:02:42
发布于 2025-02-28 06:02:42
2050
举报

随着搜索引擎技术的不断发展,我们对于查询的需求也日益提高。传统的关键词搜索已经无法满足用户对于查询准确性和效率的要求。为此,我们引入了语义搜索技术。通过使用先进的自然语言处理(NLP)技术,语义搜索能够更好地理解用户的查询意图,并返回更相关的搜索结果。而随着机器学习技术的持续发展,特别是chatGPT等生成式大模型的火爆,一个新的技术方向应运而生 —— RAG。

但是真正的理解什么是RAG并不容易,实现RAG就更难。现状是大多数时候用户会简单地把实现RAG理解为在企业中加入一个向量数据库。但RAG是一个复杂的概念,它不仅仅是一个向量数据库,实现RAG需要对业务场景有深入的理解,并且需要进行大量的数据处理和算法优化,用户的行为的理解和反馈也是最终效果达成的重要关键。因此,我们需要的更多地是一个解决方案,而非仅仅一个高性能的数据库。

本文将通过在腾讯云的Elasticsearch文档上实现RAG,来向大家展示如何Elasticsearch上通过百行代码来实现最终的效果。而这也正是一个完整解决方案与一个向量库之间的最大区别。

什么是RAG?

RAG是 Retrieval Augmented Generation 的缩写,意思是检索增强生成。它是一种利用大语言模型(LLM)和 Elasticsearch等搜索引擎,从海量的文本数据中检索出相关的信息,然后结合这些信息生成新的文本的方法。RAG可以用于实现多种应用,如知识问答、文本摘要、对话生成等。

RAG最终效果的达到,关键在于准确的理解用户的问题,准确且丰富的上下文数据,优秀的生成式大模型,合适的prompt等。

RAG系统架构
RAG系统架构

为什么要做RAG?

以腾讯云的ES帮助文档为例,目前的文本检索方式存在以下问题:

  • 词汇不匹配(lexical mismatch):当文档和查询使用不同的词语来表达相同或相似的意思时,传统的搜索方法可能无法找到相关的文档。比如,“logstash”和“ls”在语境中是一个意思,但是它们在词汇上是不同的。
通过ls无法找到正确信息
通过ls无法找到正确信息
  • 语义不匹配(semantic mismatch):当文档和查询使用相同或相似的词语来表达不同或不相关的意思时,传统的搜索方法可能会找到不相关的文档。比如,“Elastic”可以指弹性,也可以指代一家科技公司,但是它们在语义上是不同的。
  • 语言不匹配(language mismatch):当文档和查询使用不同的语言时,传统的搜索方法可能无法找到相关的文档。比如,“Serverless架构”和“无服务器架构”都可以指代同一种架构,但是它们在语言上是不同的。

因此,我们需要通过语义搜索的方式解决以上问题,找到对应的文档。

但客户实际的需求可能会更复杂,客户的问题可能是:

  • 无服务器es如何收费?请给我一个详细的例子
  • 如何销毁ls实例,给我具体的步骤

在这种需要学习文档并给出指导性意见的场景中,仅仅依靠全文检索、语义搜索或混合搜索是无法达到令人满意的效果的。为了实现这一目标,我们需要结合大模型,并在企业私有数据的基础上,通过检索增强生成(RAG)来提升效率和准确性,并给出指导性的步骤

为什么要使用Elasticsearch进行RAG?

Elasticsearch是一个开源的分布式搜索引擎,能够高效地存储、搜索和分析大量的结构化和非结构化数据。它具有强大的全文搜索功能,并支持各种查询类型,如匹配、短语、范围和布尔查询。Elasticsearch还提供了多种分析功能,如聚合、统计、排序和分页。自2019年以来,Elasticsearch已经发展成为一个包含了实现 RAG 所需的所有功能的综合性引擎,从向量存储搜索向量生成混合搜索排序,甚至还包括了专有的向量模型

不仅如此,Elasticsearch platform远远超越了传统的搜索引擎的功能。它是一个功能丰富且全面的解决方案,能够满足用户在数据采集、搜索UI设计、用户行为分析和后台运营调整等方面的需求。比如,在本例子中,我们将通过Elasticsearch platform提供的企业搜索功能,轻松对腾讯的ES帮助文档进行采集,并通过内容分析,快速调整和获得我们所期望的结果。

Elasticsearch platform不仅仅是一个搜索引擎,更不仅仅是一个向量库。它是一个全面的解决方案,旨在帮助用户最终达到他们的目标。借助这一综合性的解决方案,我们能够在短时间内快速构建面向用户的RAG应用,并直接获得用户的反馈。与其将大量时间和精力花费在调用、学习和PoC阶段,不如让我们更专注于实现目标

如何使用Elasticsearch进行RAG?

为了给大家展示完整的使用Elasticsearch进行RAG的过程,我们将通过腾讯云Elasticsearch Service和chatGPT,在腾讯云的ES帮助文档实现一个案例。

我们需要完成以下几个步骤:

  1. 创建一个Elasticsearch集群,并配置相关的参数和插件。
  2. 收集并了解我们的数据,在本例中,腾讯云ES帮助文档将作为我们的知识库,用来研究如何通过语义搜索并结合大模型来增强
  3. 处理数据,使其能进行语义搜索。使用BAAI/bge-base-zh模型将文本转换为向量,并将向量和文本一起存储到Elasticsearch中。
  4. 使用Elasticsearch提供的API或者Kibana工具来进行向量+文本的混合搜索。
  5. 使用大模型提供的API或者SDK来进行RAG的对话生成。

下面我们将详细介绍每个步骤的具体操作。

创建并配置Elasticsearch集群

我们可以使用腾讯云提供的Elasticsearch Service(ES)来快速部署、轻松管理、按需扩展我们的集群。ES是基于开源搜索引擎Elasticsearch打造的高可用、可伸缩的云端全托管的Elasticsearch服务,包含Kibana及常用插件,并集成了安全、SQL、机器学习、告警、监控等高级特性(X-Pack)。而最新的8.8.1版本上,已经包含了实现今天用例所需的所有功能。

要创建一个ES集群,我们需要先登录腾讯云控制台,然后在顶部导航栏中选择【云产品】>【数据分析】>【Elasticsearch Service】。在ES控制台中,我们可以看到已有的集群列表,如果没有集群,我们可以点击【新建】按钮来创建一个新的集群。

注意,因为部署 embedding 模型的需要,我们尽量所选足够的内存。要实现本例中的内容,建议选择配置8G及以上内存的数据节点。

部署了bge和e5模型的ES节点
部署了bge和e5模型的ES节点

收集并了解我们的数据

要在具体的场景下实现RAG,带给我们的第一个问题是我们要如何收集该场景下可能会用到的数据。很不幸的是,这些数据大多数时候并非是管理良好的结构化数据,比如最新的监管文档,企业内部的员工手册,传感器数据和日志,促销记录等。这些数据可能是放在wiki中,放在网盘里,发在邮件里,存在日志里,或者分散在多个不同的数据库中。如何采集它们,理解它们,并且如何将其转换为搜索比重不同的字段,就会存在很大的问题,而且是留给开发者自己处理的问题

RAG不同的使用场景
RAG不同的使用场景

腾讯云的ES帮助文档为例子,文档是以 markdown 的格式存储在 github 上的。并且会随时更新。在其上做 RAG ,你需要联系对应的业务团队,获取数据的同步权限,而且还需要定期同步更新。另外,这是一个典型的半结构化数据,虽然有 HTML 和 Markdown 的标签,但实际上,每一篇文章的内容和格式是不固定的,如何提取合适的 “context window”,需要我们在搜索引擎中重新有效的组织数据。

面对这些问题,Elasticsearch platform上的企业搜索功能,为我们最大程度的减少了对应的工作。从沟通,到采集,以及信息的提取,再到数据的理解

为了减少阅读的时间,这里制作了一个短视频,方便大家快速了解,我们是如何通过爬虫,抓取页面数据的,以及抓取下来的数据,如何通过管道进行处理和清洗。

完成数据的采集,以及简单的处理后,我们可以直接在 Kibana 中了解我们场景中的数据

可以看到,核心的内容包含在 body_contentheadingstitle 等三个字段中。如果要以语义搜索的方式来支持 RAG,那么,需要为这三个字段生成向量,并且需保留原始的文本字段用于页面展示引用,并发送给大模型。

特别是其中的headings字段(该字段由爬虫自动生成),包含了文档中所有章节的标题。这种有效的概括和总结性的文字,特别适合在不进行chunk、不分段存储的情况下,作为文本内容的向量表示,比如:

代码语言:json
AI代码解释
复制
"headings":"集群规格和容量配置评估#本页目录:#存储容量评估#计算资源评估#实例类型选择及测试#分片数量评估"

而剩余的字段中,url 则可用于链接到源文档。剩下的字段均可删除。

而因为是数组类型,需要转化为 text 才能被转化为向量,因此,通过以下数据管道后:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PUT _ingest/pipeline/search-tencent-es-doc@custom
{
  "version": 1,
  "description": "Enterprise Search customizable ingest pipeline for the 'search-tencent-es-doc' index",
  "processors": [
    {
      "rename": {
        "field": "doc_content",
        "target_field": "body_content",
        "ignore_missing": true
      }
    },
    {
      "join": {
        "field": "headings",
        "separator": "#"
      }
    },
    {
      "remove": {
        "keep": [
          "headings",
          "body_content",
          "url",
          "title"
        ],
        "ignore_missing": true,
        "description": "移除多余字段"
      }
    }
  ]
}

清洗后的数据为:

处理数据,使其能进行语义搜索

因为在一个 RAG 系统中,用户是通过自然语言对话的方式进行提问的,因此,检索本地数据的引擎必须支持语义搜索。通常,我们可以稀疏向量检索和密集向量检索两种方式来实现语义搜索。Elasticsearch上支持两种方式,并且为稀疏向量检索

提供了ELSER专有模型。但在本例中,我们将使用密集向量检索作为演示。

为此,我们先添加一个机器学习的推理管道,用于向量的生成:

这里,我们使用的模型是 BAAI/bge-base-zh (但实际上,我们可以在Elasticsearch中部署多个 embedding 模型,通过调试及更换模型,在不同的场景上可以获得不同的效果),该模型将输入转化为768维的向量,因此,我们需要定义一个密集向量字段,用以存储该模型生成的数据:

最后的包含向量的数据为:

使用Elasticsearch进行向量+文本的混合搜索

在目前的很多其他教程中,要进行语义搜索还需要结合langChain等封装好的模块工具才能快速的开展语义搜索。而使用Elasticsearch platform,我们只需要短短几行代码就能实现。

注意,到目前为止,我们还没有写任何一行代码,所有的数据采集和清洗,以及数据的向量生成,都可以在UI界面上通过Elasticsearch platform上通过工具来完成。对于一个熟练能使用Elasticsearch platform上各种工具的程序员来说,上面的过程整体花费可能不超过30分钟。这使得我们能够更快速地进入到向量模型和大模型调试的阶段。

而在进行混合搜索的阶段,得益于 Elasticsearch 将向量检索功能与原有的全文检索进行有有效的整合,整个过程也几乎不需要花费太长时间。从代码上看,写一个函数就能进行测试:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
from elasticsearch import Elasticsearch


# Search ElasticSearch index and return
def search(es, index_name, embedding_model, query_text):

    source_fields = ["body_content", "url", "title"]
    query = {
        "bool": {
            "must": [{
                "match": {
                    "title": {
                        "query": query_text,
                        "boost": 1
                    }
                }
            }]
        }
    }
    knn = [{
        "field": "ml.inference.headings_embeddings.predicted_value",
        "query_vector_builder": {
            "text_embedding": {
                "model_id": embedding_model,
                "model_text": query_text
            }
        },
        "k": 5,
        "num_candidates": 10,
        "boost": 24
    }, {
        "field": "ml.inference.body_content_embeddings.predicted_value",
        "query_vector_builder": {
            "text_embedding": {
                "model_id": embedding_model,
                "model_text": query_text
            }
        },
        "k": 5,
        "num_candidates": 10,
        "boost": 24
    },
    ]
    resp = es.search(
        index= index_name,
        fields=source_fields,
        query=query,
        knn=knn,
        size=3,
        source=False)

    return resp

关于以上代码,重点需要关注的地方在于:

  1. 我们通常需要结合混合搜索的方式才能获得最佳效果
  2. 同时,在执行向量搜索的时候,我们可以在多字段上进行向量检索。
  3. 而我们将embedding_model作为变量传入,使得我们可以在调试的过程中,选择不同的模型组合来查看语义检索的性能,看看哪些文档会被召回
  4. 因为我们需要将检索出来的内容交给大模型来理解,受限于模型 token的限制,我们通常只召回1~3篇文档。这种场景下,精确率比召回率重要!

通过语义搜索,对比一下原来的全文检索,同样是搜索 “如何销毁ls节点” 我们可以查到原先无法获得的信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
es = Elasticsearch(hosts=["https://es-7cu6zx9m.public.tencentelasticsearch.com:9200"],
                       http_auth=(username, password))
print(search(es,"moka-ai__m3e-base","如何销毁ls节点?"))
>>>>>>>>>>>>>
{'took': 79, 'timed_out': False, '_shards': {'total': 2, 'successful': 2, 'skipped': 0, 'failed': 0}, 'hits': {'total': {'value': 24, 'relation': 'eq'}, 'max_score': 47.651337, 
'hits': [{'_index': 'search-tencent-es-doc', '_id': '6542334ead3b4de80cb57864', '_score': 47.651337, 
'fields': {
'body_content': ['操作场景 当 Logstash 实例无法满足您的需求,需要退货时,您可以在 Elasticsearch Service 控制台对实例进行销毁,以避免服务继续运行而产生费用。如果是实例配置无法满足需求,您也可以通过调整实例配置把实例调整到合适的规格,详情可参见 实例扩缩容 。 不同计费模式退费说明 不同计费模式下的实例,销毁实例的条件如下: 预付费包年包月的实例,如果实例还未到期,需要提前销毁时,可参见 包年包月退费 。 后付费按量计费的实例,根据使用量计费,可以随时销毁实例,销毁后,就不再产生费用。 注意 实例被销毁后,数据无法恢复,请谨慎操作。 操作步骤 1. 登录 Elasticsearch Service 控制台 ,在左侧导航栏单击 Logstash 管理 ,进入 Logstash 实例列表页。 \ufeff 2. 在实例列表页,选择需要销毁的实例,选择 操作 > 更多 > 销毁 进行销毁;或单击实例 ID/名称 进入实例基本信息页,选择右上角 更多操作 > 销毁 进行销毁。 \ufeff 3. 在销毁实例页面中,单击 确定 ,系统将清空实例数据,并回收资源, 数据清空后,无法恢复 。包年包月的费用退还方式,可参见 包年包月退费 。'], 
'title': ['Elasticsearch Service 销毁实例-Logstash 指南-文档中心-腾讯云'], 
'url': ['https://cloud.tencent.com/document/product/845/55114']}},

如果是搜索 “无服务器ES”,也能找到相关的结果,而不会因为语言的原因无法识别 “Serverless” 和 “无服务器” 之间的关系。

使用大模型来进行RAG的对话生成

但正如我们之前说的,客户实际的需求可能会更复杂,客户的问题可能是:

  • 无服务器es如何收费?请给我一个详细的例子
  • 如何销毁ls实例,给我具体的步骤

我们需要把查出来的文档交给大模型进行指导性内容的生成,受限于大模型 token的限制,我们不可能无限的把召回的内容交给大模型去理解和学习;同时,召回的不相关的文档,也可能会导致产生幻觉;而根据场景,设定良好的prompt,也是大模型能够按照我们的期望为我们提供答案的关键。

因此,其实现如下:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
def truncate_text(text, max_tokens):
    tokens = text.split()
    if len(tokens) <= max_tokens:
        return text

    return ' '.join(tokens[:max_tokens])


# Generate a response from ChatGPT based on the given prompt
def chat_gpt(prompt, model="gpt-3.5-turbo", max_tokens=1024, max_context_tokens=4000, safety_margin=5):
    # Truncate the prompt content to fit within the model's context length
    truncated_prompt = truncate_text(prompt, max_context_tokens - max_tokens - safety_margin)
    print(truncated_prompt)

    response = openai.ChatCompletion.create(engine="gpt-35-turbo",
                                            messages=[{"role": "system",
                                                       "content": "你现在是腾讯云Elasticsearch Service的专家."},
                                                      {"role": "user", "content": truncated_prompt}])

    return response["choices"][0]["message"]["content"]
    
negResponse = "根据检索出来的文档,我无法回答这个问题。"

resp = search(es,embedding_model,query)
retrival_result = []
for hit in resp['hits']['hits']:
    #避免产生幻觉
    if hit['score'] > 30:
        retrival_result.append(hit['fields']['body_content'][0])
# 组合召回的内容,也可以只选择 top 1        
combine_result = ";".join(retrival_results)
print(combine_result)

prompt = f"回答此问题: {query}\n 如果所提供的文档中没有答案,请回复: '{negResponse}'\n 回答时,参考来自腾讯云ES的帮助文档: {combine_result} "
answer = chat_gpt(prompt)

关于以上代码,重点需要关注的地方在于:

  • 要注意大模型的限制,所以定义了truncate_text()函数与max_context_tokens等参数避免因超过token而调用失败
  • 限制交给大模型的上下文信息。通过if hit['score']>30避免不相关的文档误导大模型的理解
  • 设置合理的Prompt,让大模型理解自己的角色,以及角色该如何处理问题:
    • "role":"system","content":"你现在是腾讯云Elasticsearch Service的专家."
    • "role":"user","content":""回答此问题: {query}\n 如果所提供的文档中没有答案,请回复: '{negResponse}'\n 回答时,参考来自腾讯云ES的帮助文档: {combine_result} "

简单的运行上面的代码,我们可以得到如下结果:

上图中,我们看到,通过提问 “无服务器es如何收费?给我一个详细的例子”,我们得到了一个详细的,由大模型生成的例子。成功实现 RAG!

结合 streamlit 等简单的 python 框架,我们可以非常轻松的构建出一个腾讯云Elasticsearch Service的智能助手程序:

如果大家想体验,可以移步尝试。

总结

在本文中,我们介绍了如何通过 Elasticsearch Platform 快速搭建一个检索增强生成的人工智能助手。通过该平台的数据采集、数据清洗、数据分析等功能,以及向量生成、向量存储、向量检索等向量库的功能,再结合原有的全文检索能力,我们可以快速实现与大模型的结合,只需区区百行代码即可完成一个带用户界面的人工智能助手。

不仅仅是玩票性质的应用开发,对于规模更大的企业级生产环境来说,Elasticsearch Platform 能够带来更高的效能和更稳定的表现。多年的历程使得 Elasticsearch 经过了千锤百炼的考验,成为一个值得信赖的平台。

在未来,我们将继续优化 Elasticsearch Platform,以满足企业级生产环境的更多需求,并为用户提供更好的使用体验。我们将不断努力,为人工智能助手的开发和应用带来更多创新和便利。

附录

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import os
import streamlit as st
import openai
from elasticsearch import Elasticsearch

openai.api_key = os.environ['openai_api']
username = os.getenv('ES_USERNAME', 'ERROR')
password = os.getenv('ES_PASSWORD', 'ERROR')

# Search ElasticSearch index and return body and URL of the result
def search(es, index_name, embedding_model, query_text):

    source_fields = ["body_content", "url", "title"]
    query = {
        "bool": {
            "must": [{
                "match": {
                    "title": {
                        "query": query_text,
                        "boost": 1
                    }
                }
            }]
        }
    }
    knn = [{
        "field": "ml.inference.headings_embeddings.predicted_value",
        "query_vector_builder": {
            "text_embedding": {
                "model_id": embedding_model,
                "model_text": query_text
            }
        },
        "k": 5,
        "num_candidates": 10,
        "boost": 24
    }, {
        "field": "ml.inference.body_content_embeddings.predicted_value",
        "query_vector_builder": {
            "text_embedding": {
                "model_id": embedding_model,
                "model_text": query_text
            }
        },
        "k": 5,
        "num_candidates": 10,
        "boost": 24
    },
    ]
    resp = es.search(
        index=index_name,
        fields=source_fields,
        query=query,
        knn=knn,
        size=3,
        source=False)
    return resp

def truncate_text(text, max_tokens):
    tokens = text.split()
    if len(tokens) <= max_tokens:
        return text
    return ' '.join(tokens[:max_tokens])

# Generate a response from ChatGPT based on the given prompt
def chat_gpt(prompt, model="gpt-3.5-turbo", max_tokens=1024, max_context_tokens=4000, safety_margin=5):
    # Truncate the prompt content to fit within the model's context length
    truncated_prompt = truncate_text(prompt, max_context_tokens - max_tokens - safety_margin)

    response = openai.ChatCompletion.create(engine="gpt-35-turbo",
                                            messages=[{"role": "system",
                                                       "content": "你现在是腾讯云Elasticsearch Service的专家."},
                                                      {"role": "user", "content": truncated_prompt}])

    return response["choices"][0]["message"]["content"]


st.title("腾讯云ES文档 - RAG")
embedding_model = st.radio(
    "你想用哪个embedding模型?",["baai__bge-base-zh", "moka-ai__m3e-base", "e5-base"],index=0
)

# Main chat form
with st.form("chat_form"):
    query = st.text_input("You: ")
    submit_button = st.form_submit_button("Send")

es = Elasticsearch(hosts=["https://es-7cu6zx9m.public.tencentelasticsearch.com:9200"],
                       basic_auth=(username, password))

# Generate and display response on form submission
negResponse = "根据检索出来的文档,我无法回答这个问题。"
if submit_button:
    resp = search(es,"search-tencent-es-doc", embedding_model,query)
    retrival_results = []
    for hit in resp['hits']['hits']:
        #避免产生幻觉
        if hit['_score'] > 30:
            retrival_results.append(hit['fields']['body_content'][0])
    combine_result = ";".join(retrival_results)
    print(combine_result)

    prompt = f"回答此问题: {query}\n 如果所提供的文档中没有答案,请回复: '{negResponse}'\n 回答时,参考来自腾讯云ES的帮助文档: {combine_result} "
    answer = chat_gpt(prompt)

    st.write(f"ChatGPT: {answer.strip()}\n\n")
    st.write("## 检索出来的帮助文档:")
    for hit in resp['hits']['hits']:
        body = hit['fields']['body_content'][0]
        url = hit['fields']['url'][0]
        title = hit['fields']['title'][0]
        st.write(f"Docs: [{title}]({url})\n\nDoc content: {body}")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯云cos对象存储的流程!
西里网
2025/05/30
1400
腾讯云对象存储
  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
别团等shy哥发育
2023/02/25
59.2K2
腾讯云对象存储
腾讯云对象存储 COS 高可用解决方案,都在这里了!
上一篇内容我们说到了 COS 是什么“要对象存储做什么,我有女朋友就够了!”的文章。本文将着重介绍如何尽可能的提高腾讯云对象存储 COS 的可用性。
云存储
2019/12/06
2.8K0
腾讯云对象存储 COS 高可用解决方案,都在这里了!
轻量对象存储 LighthouseCOS实践
如今互联网时代在高速发展,对网站的访问速度越来越高了,往往在图片加载的时候,会遇到卡顿、超时、缓慢的情况产生,从而需要将大量的文本类资源(如css、html、图片、txt文本)都可以通过云储存为商户实现了快捷稳定的服务。
用户10585271
2024/02/13
6.7K8
轻量对象存储 LighthouseCOS实践
Cloudreve:Star22.3k,免费开源的网盘,支持多种存储方式,它允许用户快速搭建个人或团队的私有云存储服务。
Cloudreve提供了直观的文件管理界面,支持多种文件操作,包括上传、下载、重命名、移动和删除。此外,它还支持文件夹的批量操作,极大地提高了工作效率。
小华同学ai
2025/01/30
2390
Cloudreve:Star22.3k,免费开源的网盘,支持多种存储方式,它允许用户快速搭建个人或团队的私有云存储服务。
【腾讯云轻量对象存储“用户实践”征文】腾讯云轻量对象存储LighthouseCOS 实践体验:简单高效的数据存储解决方案
摘要:本文将介绍分享关于LighthouseCOS的功能和特点,并分享用户在实践中的体验,因为LighthouseCOS作为一种简单高效的数据存储解决方案,为用户提供了可靠、安全和易用的云端存储服务,值得一用。
三掌柜
2024/02/23
3203
【腾讯云轻量对象存储“用户实践”征文】腾讯云轻量对象存储LighthouseCOS 实践体验:简单高效的数据存储解决方案
【Docker项目实战】在Docker环境下部署go-file文件分享工具
江湖有缘
2023/12/09
1.6K1
【Docker项目实战】在Docker环境下部署go-file文件分享工具
使用腾讯云对象存储 COS + PicGo 搭建图床服务
平时写博客记笔记大都是使用 markdown 编辑器 ,插入图片时默认保存在电脑本地磁盘。如果需要在多个平台上发布文章,就要分别多次上传图片,非常繁琐。所以需要一种更好的图片管理方案,就是使用图床服务。将图片文件上传到图床并得到一个 url 地址,就可以方便的分享图片了。
昆吾kw
2022/08/05
6.6K0
【对象存储COS】使用COS自动数据备份,解放硬盘空间
视频,照片,录音......诸如此类的文件在手机电脑里,永远是不断增多,不断占用的东西,每次空间告急时,都要花一大片时间去整理,删除照片释放这宝贵的空间,“这个删,这个删不删呢?可能以后要用......”,挑选照片还真是一个费时费力还费心的活。
Ar-Sr-Na
2024/06/03
3860
前端上传文件到腾讯云(对象存储)
好吧,没写之前简单的说一下为什么要写,我还是怀着比较沉重的心情写的这篇教程,主要是心里没底,不知道能写明白不,不过既然提笔了,那就硬着头皮写吧,没办法,毕竟跌跌撞撞总算是搞出来了。还有就是我百度了,没有教程,所以更坚定了我写这篇博文的心。
何处锦绣不灰堆
2020/05/29
14.9K0
前端上传文件到腾讯云(对象存储)
腾讯云COS对象存储的简单使用
叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API)。
宋先生
2019/07/18
19.3K1
腾讯云COS存储实战指南:Spring Boot项目集成与应用详解
在数字化时代,数据存储和管理的重要性日益凸显。腾讯云对象存储(Cloud Object Storage,简称COS)作为腾讯云提供的一种高可靠、高扩展性的存储服务,能够帮助企业和个人用户轻松应对海量数据的存储需求。本文将详细介绍腾讯云COS存储的使用方法以及在springboot项目中的使用案例。
Front_Yue
2024/11/12
1K0
腾讯云COS存储实战指南:Spring Boot项目集成与应用详解
腾讯云(COS)对象存储基于java实现的文件上传和下载、删除、查看
这里使用永久云API秘钥信息初始化,所以需要先生成一个密钥,https://console.cloud.tencent.com/cam/capi
聚优云惠
2019/12/26
11.2K0
认证+1!腾讯云对象存储COS、存储一体机TStor首批通过信通院云原生存储能力评估
数字经济发展日新月异,企业走向数字化,诞生了海量的软件和服务。软件行业高数据规模,高自动化、高迭代速度的要求,给传统软件行业带来了挑战。为推动软件架构更加健全,管理更加高效,云原生的概念应运而生,强调云技术架构中的弹性能力、自愈能力、可复制能力,进一步解放数字化行业生产力,赋能业务创新。 存储服务是云原生体系中的关键环节。云原生场景下,用户在云存储基本能力之上又提出了效率、弹性、自治、稳定、应用低耦合、安全等方面的新诉求。腾讯云存储团队与中国信通院及业界同仁一起将经验量化为标准,参与了《云原生存储能力要求》
云存储
2023/03/29
6410
认证+1!腾讯云对象存储COS、存储一体机TStor首批通过信通院云原生存储能力评估
腾讯云对象存储+企业网盘 打通数据链“最后一公里”
对云厂商和企业用户来说,随着数据规模的快速增长,企业除了对存储功能和性能的要求不断增加,也越来越注重数据分发的效率。在传统数据分发的过程中,数据管理员往往需要先在存储桶下载对应的客户方案/交付资料,再使用微信/QQ逐个发送,这种方式十分耗时耗力,并且增加了操作的成本与泄露的风险。所以在数据分发的过程中,如何才能“低成本、高效率”的提升数据分发、业务联动的效率,想必是大家最头疼的问题之一。
阿那个沫
2023/02/09
1.7K0
腾讯云对象存储+企业网盘 打通数据链“最后一公里”
如何将WordPress远程附件存储到腾讯云对象存储COS上
WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统(CMS)来使用。
沈唁
2020/01/17
4.9K0
如何将WordPress远程附件存储到腾讯云对象存储COS上
腾讯张晔:全新CRM产品体系“三大智能”解决企业发展三大挑战
12月1日,2022腾讯全球数字生态大会·腾讯企点分论坛上,腾讯发布了新一代数智双驱一体化CRM产品,并升级其与埃森哲联合打造的“增长双涡轮模型”方法论。腾讯云副总裁、腾讯企点负责人张晔表示,CRM从销售中心向客户中心演进,全渠道连接、全数据智能、全链路协同的CRM产品才能助力企业面对存量竞争时代的挑战。 随着国内越来越多的行业从增量时代进入存量时代,企业的增长范式也在经历深刻转向。张晔指出,进入存量市场,企业的竞争从产品功能层面转向服务层面、体验层面。这一趋势,对企业的能力提出两个新挑战:一方面,如何快速
腾讯企点
2022/12/01
1.2K0
腾讯张晔:全新CRM产品体系“三大智能”解决企业发展三大挑战
腾讯云对象存储COS安全方案介绍
​相信所有企业和个人开发者在选用云存储产品时都把数据安全作为重要考量标准。 本文介绍了用户如何使用腾讯云对象存储COS的事前防护、事中监控、事后追溯三个手段来保证自己的数据安全。
云存储
2020/03/03
7.4K0
EMR入门学习之腾讯云对象存储COS(八)
COS(Cloud Object Storage),一种海量的分布式存储服务,用户可以随时通过互联网对大量数据进行批量存储,兼具性能与共享能力,适用于大数据场景,访问接口多样化,控制台、API、SDK。
披荆斩棘
2019/11/18
3.4K0
腾讯云对象存储 COS 荣获对象存储领导力奖!!!
亚太内容分发大会暨 CDN 峰会一直致力于推动 CDN 产业深度融合发展和市场普及,现已成为亚太地区影响力最大的内容分发网络盛会。十年来,在以腾讯云、阿里云、网宿科技等亚太 CDN 产业联盟成员孜孜不辍的努力下,CDN 产业已经成为基础性设施网络,以坚定的基石之姿,支撑起中国成为世界最大的互联网市场。
云存储
2021/06/21
6.5K0
腾讯云对象存储 COS 荣获对象存储领导力奖!!!
推荐阅读
相关推荐
腾讯云cos对象存储的流程!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档