claude chatgpt4与腾讯云cos api的联动

需求:

我需要对腾讯云对象存储cos某一桶下目录前缀为xxx/的文件进行递归遍历,然后给文件添加cdn域名并对资源进行预热.

claude 与腾讯云cos api的联动

首先先体验一下腾讯云自有的api explorer:https://cloud.tencent.com/document/product/1278/46697,使用GET Bucket(List Object),参照:https://cloud.tencent.com/document/product/436/7734中的参数:

使用 API Explorer

稍微体验了一下:https://console.cloud.tencent.com/api/explorer?Product=cos&Version=2018-11-26&Action=GetBucket

怎么说呢,很差的体验,咱看一下其他的服务的api:

忍不住去用户群吐槽了一下…..

无论从文档还是左侧参数 右侧相关代码死代码,页面结构都是跟其他服务不一致..体验一下在线调用吧:

生成一个xml文件好纠结…….下面改怎么办呢?

我的解决方式:

导出这个xml文件———过滤输出 /Key>的文件路径————然后拼装加上cdn域名的头,然后把url文件给**cdn预热api(**这里直接使用了腾讯云的控制台操作)?正常的流程应该是这样的。

将文件导入到了服务器:

前几天 顺便体验了一下claude,chatgpt这些的。看小伙伴用poe:https://poe.com/ 也简单的玩了一下,以claude-2-100k为例,体验一下chat问答式的流程完成下面的流程:

chat式问答

问: 写一个脚本获取文件中所有 /Key>中的内容,每一条一行输出

以下是答复,给出一个基于python的脚本:

貌似是可以的,但是想到,我想将输出内容到文件啊?再进一步提问:

问: 写一个脚本获取文件中所有 /Key>中的内容,每一条一行输出到文件

好的,要将提取出来的内容输出到文件,只需要在打印的时候改为写入文件即可:

    import re 
    with open('file.xml') as f:
        content = f.read()
    pattern = re.compile(r'(.*?)')
    keys = pattern.findall(content)
    with open('output.txt', 'w') as f:
        for key in keys:
            f.write(key + 'n')

    主要改动:

    打开一个输出文件output.txt用于写入

    在循环中,使用文件对象的write()方法,将key的值和换行符'n'一起写入文件

    这样就可以把所有提取出来的内容,以换行分隔的格式写入到output.txt文件中

    其他部分和匹配的正则表达式逻辑相同。

    可以根据实际需求,调整打开文件方式,以及写入文件中的分隔符等。这种方法可以轻松地将提取后的内容输出到指定的文件中。

服务器尝试一下:

保存上面的py脚本为file.py 与file.xml为同一目录下运行python file.py:

ls查看目录下生成了output.txt,tail -f output.txt查看文件内容:

下一步接着给文件名添加上url前缀?

问: 给文件中upload的行添加一个url前缀

copy出脚本尝试一下:

cat url.py

    prefix = 'https://example.com/'

    with open('files.txt', 'r') as f:
        lines = f.readlines()

    with open('files_new.txt', 'w') as f:
        for line in lines:
            if line.startswith('upload'):
                line = prefix + line
            f.write(line)

运行脚本python url.py 查看目录生成files_new.txt,并tail -f查看:

下一步就直接用控制台操作了,直接忽略了!

以上步骤当然了还有其他的方法,腾讯云的cos大哥给我的控制台的方法:

我这里给API Explorer 团队建议能够实现成流水线的方式,实现步骤联动不知道他们是否会采纳……

chatgpt4完全使用一下生成式体验:

问:

    完成以下操作:

    1. 使用腾讯云go客户端密钥方式快速递归获取cos对象存储下某一文件夹下文件列表。
    2. 获取文件表中所有 /Key>中的内容,每一条一行输出到文件。
    3. 为上一步中输出到文件的内容添加https://www.baidu.com/的前缀,并生成一个新的文件。

代码放入goland可能会有下面的提醒让将**:= 替换成=**操作一下:

最终main.go如下:

package main

import (
	"bufio"
	"context"
	"fmt"
	"net/http"
	"net/url"
	"os"
	"time"

	"github.com/tencentyun/cos-go-sdk-v5"
)

func main() {
	u, _ := url.Parse("https://-.cos..myqcloud.c")
	b := &cos.BaseURL{BucketURL: u}
	c := cos.NewClient(b, &http.Client{
		Timeout: 100 * time.Second,
		Transport: &cos.AuthorizationTransport{
			SecretID:  "xxxxxxxxxxxxxxxxxx",
			SecretKey: "xxxxxxxxxxxxxxxxxxxx",
		},
	})

	opt := &cos.BucketGetOptions{
		Prefix:       "1/",
		Delimiter:    "/",
		EncodingType: "url",
	}

	v, _, err := c.Bucket.Get(context.Background(), opt)
	if err != nil {
		panic(err)
	}

	for _, cont := range v.Contents {
		fmt.Printf("%sn", cont.Key)
	}
	//v, _, err = c.Bucket.Get(context.Background(), opt)
	//if err != nil {
	//	panic(err)
	//}

	file, err := os.Create("fileList.txt")
	if err != nil {
		panic(err)
	}
	defer file.Close()

	writer := bufio.NewWriter(file)
	for _, cont := range v.Contents {
		fmt.Fprintln(writer, cont.Key)
	}
	writer.Flush()
	file, err = os.Open("fileList.txt")
	if err != nil {
		panic(err)
	}
	defer file.Close()

	newFile, err := os.Create("newFileList.txt")
	if err != nil {
		panic(err)
	}
	defer newFile.Close()

	scanner := bufio.NewScanner(file)
	writer = bufio.NewWriter(newFile)
	for scanner.Scan() {
		fmt.Fprintln(writer, "https://www.baidu.com/"+scanner.Text())
	}
	writer.Flush()
}

运行main.go

完美但是没有忽略文件夹?但是gtp4次数用光了无法提问了…..也试了一下API Explorer。貌似会带这个文件夹根的忽略了!!

另外正常生成文件应该在同一目录的,我这是在自己玩的一个项目下test目录执行的故都生成文件在上一层目录了! 当然了项目依赖的安装这里都忽略了,自己使用 go get -u 安装以下依赖包?

对了强调一下 我用的go1.17 用1.19的时候defer file.Close()报错了….小白搞不懂…

文章来源于互联网:claude chatgpt4与腾讯云cos api的联动

阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=13143,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?