【Golang星辰图】Go语言云计算SDK全攻略:深入Go云存储SDK实践
Go语言云计算和存储SDK全面指南
前言
在当今数字化时代,云计算和存储服务扮演着至关重要的角色,为应用程序提供高效、可靠的基础设施支持。本文将介绍几种流行的Go语言SDK,帮助开发者与AWS、Google Cloud、Azure、MinIO、 阿里云和腾讯云等各大云服务提供商的平台进行交互。
欢迎订阅专栏:Golang星辰图
文章目录
- Go语言云计算和存储SDK全面指南
- **前言**
- 1. aws-sdk-go
- 1.1 提供与AWS云服务交互的功能
- 1.2 支持管理和操作AWS的各种服务
- 1.3 数据传输服务
- 1.4 虚拟私有云(VPC)管理
- 1.5 身份和访问管理(IAM)
- 2. google-cloud-go
- 2.1 提供与Google Cloud服务交互的功能
- 2.2 支持管理和操作Google Cloud的各种服务
- 2.3 云函数部署
- 2.4 数据库访问
- 2.5 云监控和日志管理
- 2.6 人工智能和机器学习
- 3. azure-sdk-for-go
- 3.1 提供与Azure云服务交互的功能
- 3.2 支持管理和操作Azure的各种服务
- 3.3 虚拟机管理
- 3.4 容器服务管理
- 3.5 凭据和安全管理
- 4. minio-go
- 4.1 提供与MinIO对象存储交互的功能
- 4.2 支持上传、下载和管理存储在MinIO中的对象数据
- 4.3 使用Presigned URL进行文件上传
- 5. aliyun-sdk-go
- 5.1 提供与阿里云服务交互的功能
- 5.2 支持管理和操作阿里云的各种服务
- 5.3 弹性计算(ECS)实例管理
- 6. tencentcloud-sdk-go
- 6.1 提供与腾讯云服务交互的功能
- 6.2 支持管理和操作腾讯云的各种服务
- 6.3 云服务器(CVM)实例管理
- 总结
1. aws-sdk-go
1.1 提供与AWS云服务交互的功能
AWS SDK for Go是一个用于构建应用程序,可以无缝访问Amazon Web Services (AWS) 的工具包。它提供了访问 AWS 服务所需的 API 操作、数据结构和错误处理。
package mainimport ("github.com/aws/aws-sdk-go/aws""github.com/aws/aws-sdk-go/aws/session""github.com/aws/aws-sdk-go/service/s3""fmt"
)func main() {// 创建 AWS sessionsess := session.Must(session.NewSession(&aws.Config{Region: aws.String("us-west-2"),}))// 创建 S3 服务 clientsvc := s3.New(sess)// 示例:列出 S3 存储桶result, err := svc.ListBuckets(nil)if err != nil {fmt.Println("Error listing buckets", err)return}fmt.Println("Buckets:")for _, bucket := range result.Buckets {fmt.Printf("* %s created on %s\n",aws.StringValue(bucket.Name), aws.TimeValue(bucket.CreationDate))}
}
1.2 支持管理和操作AWS的各种服务
AWS SDK for Go 提供了大量服务的 API 操作,例如 EC2、S3、DynamoDB、Lambda 等。开发者可以使用这些操作来管理和操作不同的 AWS 服务。
1.3 数据传输服务
除了基本存储服务外,AWS SDK for Go还支持数据传输服务,如AWS Transfer Family,可以轻松实现文件传输。
package mainimport ("github.com/aws/aws-sdk-go/aws""github.com/aws/aws-sdk-go/aws/session""github.com/aws/aws-sdk-go/service/transfer""fmt"
)func main() {// 创建 AWS sessionsess := session.Must(session.NewSession(&aws.Config{Region: aws.String("us-east-1"),}))// 创建 Transfer 服务 clientsvc := transfer.New(sess)// 示例:创建SFTP服务器input := &transfer.CreateServerInput{IdentityProviderType: aws.String("SERVICE_MANAGED"),EndpointDetails: &transfer.EndpointDetails{VpcEndpointId: aws.String("vpc-123456"),},EndpointType: aws.String("PUBLIC"),}result, err := svc.CreateServer(input)if err != nil {fmt.Println("Error creating server", err)return}fmt.Println("Created server ID:", *result.ServerId)
}
1.4 虚拟私有云(VPC)管理
AWS SDK for Go也支持虚拟私有云(VPC)的管理,包括子网、路由表和安全组等资源的操作。
package mainimport ("github.com/aws/aws-sdk-go/aws""github.com/aws/aws-sdk-go/aws/session""github.com/aws/aws-sdk-go/service/ec2""fmt"
)func main() {// 创建 AWS sessionsess := session.Must(session.NewSession(&aws.Config{Region: aws.String("us-west-2"),}))// 创建 EC2 服务 clientsvc := ec2.New(sess)// 示例:列出所有 VPCinput := &ec2.DescribeVpcsInput{}result, err := svc.DescribeVpcs(input)if err != nil {fmt.Println("Error describing VPCs", err)return}fmt.Println("VPCs:")for _, vpc := range result.Vpcs {fmt.Printf("* VPC ID: %s\n", aws.StringValue(vpc.VpcId))}
}
1.5 身份和访问管理(IAM)
AWS SDK for Go也可用于管理身份和访问控制策略,如创建新用户、分配权限等操作。
package mainimport ("github.com/aws/aws-sdk-go/aws""github.com/aws/aws-sdk-go/aws/session""github.com/aws/aws-sdk-go/service/iam""fmt"
)func main() {// 创建 AWS sessionsess := session.Must(session.NewSession(&aws.Config{Region: aws.String("us-east-1"),}))// 创建 IAM 服务 clientsvc := iam.New(sess)// 示例:列出 IAM 用户input := &iam.ListUsersInput{}result, err := svc.ListUsers(input)if err != nil {fmt.Println("Error listing IAM users", err)return}fmt.Println("IAM Users:")for _, user := range result.Users {fmt.Printf("* Username: %s\n", aws.StringValue(user.UserName))}
}
2. google-cloud-go
2.1 提供与Google Cloud服务交互的功能
Google Cloud SDK for Go 是 Google Cloud 官方提供的 Go 语言开发库,可用于与 Google Cloud 平台上的各种服务进行交互。
package mainimport ("context""fmt""cloud.google.com/go/storage"
)func main() {ctx := context.Background()// 创建 Storage 客户端client, err := storage.NewClient(ctx)if err != nil {fmt.Println("Failed to create client:", err)return}defer client.Close()// 列出存储桶buckets, err := client.Buckets(ctx, "your-project-id")if err != nil {fmt.Println("Failed to list buckets:", err)return}fmt.Println("Buckets:")for _, bucket := range buckets {fmt.Println(bucket.Name)}
}
2.2 支持管理和操作Google Cloud的各种服务
Google Cloud SDK for Go 支持管理和操作 Google Cloud 平台上的各种服务,如云存储、云函数、云数据库等。
2.3 云函数部署
除了存储服务外,Google Cloud SDK for Go 还支持云函数的部署和管理,使开发者能够轻松构建和运行无服务器函数。
package mainimport ("context""fmt""cloud.google.com/go/functions/metadata"
)// ExamplePubSub function processes Pub/Sub messages.
func ExamplePubSub(ctx context.Context, m metadata.Message) error {fmt.Printf("Processing message: %s\n", string(m.Data))return nil
}
2.4 数据库访问
Google Cloud SDK for Go还支持访问和操作Google Cloud平台上的数据库服务,如Cloud SQL、Firestore等。通过SDK,开发者可以执行数据库查询、写入操作等。
2.5 云监控和日志管理
Google Cloud SDK for Go提供了用于监控和日志管理的功能,可以帮助开发者实时监控应用程序、收集和分析日志数据。
package mainimport ("context""fmt""cloud.google.com/go/logging"
)func main() {ctx := context.Background()// 创建 Logging 客户端client, err := logging.NewClient(ctx, "your-project-id")if err != nil {fmt.Println("Failed to create client:", err)return}defer client.Close()logger := client.Logger("my-log")// 写入日志消息logger.Log(logging.Entry{Payload: "Log message"})
}
2.6 人工智能和机器学习
Google Cloud SDK for Go还支持与Google Cloud平台上的人工智能和机器学习服务集成,包括Vision API、Translate API等,可以轻松处理图像识别、自然语言处理等任务。
package mainimport ("context""fmt""cloud.google.com/go/translate"
)func main() {ctx := context.Background()// 创建 Translate 客户端client, err := translate.NewClient(ctx)if err != nil {fmt.Println("Failed to create client:", err)return}defer client.Close()// 翻译文本translation, err := client.Translate(ctx, []string{"Hello, World!"}, "fr", nil)if err != nil {fmt.Println("Translation error:", err)return}fmt.Println("Translated text:", translation[0].Text)
}
通过以上示例代码,您可以更全面地了解Google Cloud SDK for Go在不同领域的应用。在下一节中,我们将继续探讨更多有关Google Cloud SDK for Go的内容。
3. azure-sdk-for-go
3.1 提供与Azure云服务交互的功能
Azure SDK for Go 是 Microsoft Azure 官方提供的 Go 语言开发库,用于与 Azure 云服务进行交互。
package mainimport ("context""fmt""github.com/Azure/azure-sdk-for-go/storage"
)func main() {accountName := "your-account-name"accountKey := "your-account-key"client, err := storage.NewBasicClient(accountName, accountKey)if err != nil {fmt.Println("Failed to create client:", err)return}service := client.GetBlobService()// 列出容器containers, err := service.ListContainers(context.Background(), nil)if err != nil {fmt.Println("Failed to list containers:", err)return}fmt.Println("Containers:")for _, container := range containers {fmt.Println(*container.Name)}
}
3.2 支持管理和操作Azure的各种服务
Azure SDK for Go 允许您管理和操作 Azure 平台上的各种服务,如 Blob 存储、表存储、虚拟机等。
3.3 虚拟机管理
Azure SDK for Go 还支持对 Azure 平台上的虚拟机进行创建、启动、停止等操作,以满足不同场景下的需求。
package mainimport ("context""fmt""github.com/Azure/azure-sdk-for-go/profiles/latest/compute/mgmt/compute""github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-03-01/compute"
)func main() {vmClient := compute.NewVirtualMachinesClient(subscriptionID)authorizer, err := auth.NewAuthorizerFromCLI()if err != nil {fmt.Println("Failed to get authorization:", err)return}vmClient.Authorizer = authorizer// 示例:列出虚拟机vms, err := vmClient.List(context.Background())if err != nil {fmt.Println("Failed to list virtual machines:", err)return}fmt.Println("Virtual Machines:")for _, vm := range vms.Values() {fmt.Printf("* Name: %s\n", *vm.Name)}
}
3.4 容器服务管理
Azure SDK for Go 提供了对 Azure 容器服务的管理功能,包括容器实例、容器注册表等资源的操作。
package mainimport ("context""fmt""github.com/Azure/azure-sdk-for-go/profiles/latest/containerinstance/mgmt/containerinstance"
)func main() {containerClient := containerinstance.NewContainerGroupsClient(subscriptionID)authorizer, err := auth.NewAuthorizerFromCLI()if err != nil {fmt.Println("Failed to get authorization:", err)return}containerClient.Authorizer = authorizer// 示例:列出容器实例containers, err := containerClient.List(context.Background())if err != nil {fmt.Println("Failed to list container instances:", err)return}fmt.Println("Container Instances:")for _, container := range containers.Values() {fmt.Printf("* Name: %s\n", *container.Name)}
}
3.5 凭据和安全管理
Azure SDK for Go 还支持管理凭据、密钥和安全相关的操作,以确保在 Azure 平台上的服务和资源中的安全性。
package mainimport ("context""fmt""github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault"
)func main() {keyVaultClient := keyvault.New()// 设置凭据_, err := keyVaultClient.SetSecret(context.Background(), vaultBaseURL, secretName, secretValue, nil)if err != nil {fmt.Println("Failed to set secret:", err)return}// 获取凭据secretBundle, err := keyVaultClient.GetSecret(context.Background(), vaultBaseURL, secretName, "")if err != nil {fmt.Println("Failed to get secret:", err)return}fmt.Println("Secret Value:", *secretBundle.Value)
}
4. minio-go
4.1 提供与MinIO对象存储交互的功能
MinIO Go SDK 是 MinIO 对象存储服务的 Go 语言开发库,用于在 Go 应用程序中与 MinIO 服务器进行交互。
package mainimport ("fmt""github.com/minio/minio-go/v7""context"
)func main() {endpoint := "play.min.io"accessKeyID := "YOUR-ACCESSKEYID"secretAccessKey := "YOUR-SECRETACCESSKEY"// 初始化MinIO客户端对象minioClient, err := minio.New(endpoint, &minio.Options{Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),})if err != nil {fmt.Println(err)return}// 列出存储桶buckets, err := minioClient.ListBuckets(context.Background())if err != nil {fmt.Println("Failed to list buckets:", err)return}fmt.Println("Buckets:")for _, bucket := range buckets {fmt.Println(bucket.Name)}
}
4.2 支持上传、下载和管理存储在MinIO中的对象数据
MinIO Go SDK 提供了丰富的函数来支持上传、下载和管理存储在 MinIO 对象存储中的对象数据。您可以使用这些函数来处理对象存储的各种操作。
4.3 使用Presigned URL进行文件上传
MinIO Go SDK 还支持生成预签名URL,用于安全地上传和下载对象,无需暴露访问凭据,增加了数据传输的安全性。
package mainimport ("fmt""github.com/minio/minio-go/v7""context"
)func main() {// 创建MinIO客户端对象(假设已初始化)presignedURL, err := minioClient.PresignedPutObject(context.Background(), "mybucket", "object.jpg", expiresIn, nil)if err != nil {fmt.Println("Failed to generate presigned URL:", err)return}fmt.Println("Presigned URL for upload:", presignedURL)
}
5. aliyun-sdk-go
5.1 提供与阿里云服务交互的功能
Aliyun SDK for Go 是阿里云官方提供的 Go 语言开发库,用于与阿里云平台上的各种服务进行交互。
package mainimport ("fmt""github.com/aliyun/alibaba-cloud-sdk-go/services/ecs""github.com/aliyun/alibaba-cloud-sdk-go/sdk""github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
)func main() {client, err := ecs.NewClientWithAccessKey("your-region-id", "your-access-key-id", "your-access-key-secret")if err != nil {fmt.Println("Failed to create client:", err)return}request := ecs.CreateDescribeInstancesRequest()response, err := client.DescribeInstances(request)if err != nil {fmt.Println("Failed to describe instances:", err)return}fmt.Println(response)
}
5.2 支持管理和操作阿里云的各种服务
Aliyun SDK for Go 支持管理和操作阿里云平台上的各种服务,如 ECS、RDS、OSS 等。
5.3 弹性计算(ECS)实例管理
除了上述示例代码中展示的描述实例的操作外,Aliyun SDK for Go 还支持创建、启动、停止、重启 ECS 实例等一系列操作。
package mainimport ("fmt""github.com/aliyun/alibaba-cloud-sdk-go/services/ecs""github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
)func main() {client, err := ecs.NewClientWithAccessKey("your-region-id", "your-access-key-id", "your-access-key-secret")if err != nil {fmt.Println("Failed to create client:", err)return}// 创建ECS实例createRequest := ecs.CreateCreateInstanceRequest()createRequest.InstanceType = "ecs.t5-lc2m1.nano" // 示例值createRequest.ImageId = "ubuntu_18_04_64_20G_alibase_20190624.vhd" // 示例值createResponse, err := client.CreateInstance(createRequest)if err != nil {fmt.Println("Failed to create instance:", err)return}fmt.Println(createResponse)
}
6. tencentcloud-sdk-go
6.1 提供与腾讯云服务交互的功能
Tencent Cloud SDK for Go 是腾讯云官方提供的 Go 语言开发库,用于与腾讯云平台上的各种服务进行交互。
package mainimport ("context""fmt""github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common""github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common/profile"cvm "github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312"
)func main() {credential := common.NewCredential("your-secret-id", "your-secret-key")cpf := profile.NewClientProfile()client, _ := cvm.NewClient(credential, "ap-guangzhou", cpf)request := cvm.NewDescribeInstancesRequest()response, err := client.DescribeInstances(request)if _, ok := err.(*common.APIError); ok {fmt.Printf("An API error has returned: %s", err)return}if err != nil {fmt.Println(err)return}fmt.Println(response.ToJsonString())
}
6.2 支持管理和操作腾讯云的各种服务
Tencent Cloud SDK for Go 允许您管理和操作腾讯云平台上的诸多服务,如云服务器、COS、CDN 等。
6.3 云服务器(CVM)实例管理
除了上述示例代码中展示的描述实例的操作外,Tencent Cloud SDK for Go 还支持创建、启动、停止、查询 CVM 实例等一系列操作。
package mainimport ("context""fmt""github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common""github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/common/profile"cvm "github.com/TencentCloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312"
)func main() {credential := common.NewCredential("your-secret-id", "your-secret-key")cpf := profile.NewClientProfile()client, _ := cvm.NewClient(credential, "ap-guangzhou", cpf)createRequest := cvm.NewRunInstancesRequest()createRequest.InstanceChargeType = common.StringPtr("POSTPAID_BY_HOUR")createRequest.Placement = &cvm.Placement{Zone: common.StringPtr("ap-guangzhou-2"),}createRequest.InstanceType = common.StringPtr("S5.LARGE8")response, err := client.RunInstances(createRequest)if err != nil {fmt.Println("Failed to create instance:", err)return}fmt.Println(response.ToJsonString())
}
总结
借助这些强大的Go语言SDK,开发者能够轻松构建应用程序,与各大云服务提供商的平台进行无缝交互,实现任务调度、数据存储、计算处理等功能。这些SDK不仅简化了开发流程,还提供了丰富的API操作,使得开发者能够更便捷地利用云计算和存储服务。
相关文章:
【Golang星辰图】Go语言云计算SDK全攻略:深入Go云存储SDK实践
Go语言云计算和存储SDK全面指南 前言 在当今数字化时代,云计算和存储服务扮演着至关重要的角色,为应用程序提供高效、可靠的基础设施支持。本文将介绍几种流行的Go语言SDK,帮助开发者与AWS、Google Cloud、Azure、MinIO、 阿里云和腾讯云等…...

深入理解TCP:序列号、确认号和自动ACK的艺术
深入理解TCP:序列号、确认号和自动ACK的艺术 在计算机网络的世界里,TCP(传输控制协议)扮演着至关重要的角色。它确保了数据在不可靠的网络环境中可靠地、按顺序地传输。TCP的设计充满智慧,其中序列号(Seq&a…...

家电工厂5G智能制造数字孪生可视化平台,推进家电工业数字化转型
家电5G智能制造工厂数字孪生可视化平台,推进家电工业数字化转型。随着科技的飞速发展,家电行业正迎来一场前所未有的数字化转型。在这场制造业数字化转型中,家电5G智能制造工厂数字孪生可视化平台扮演着至关重要的角色。本文将从数字孪生技术…...

ctf_show笔记篇(web入门---代码审计)
301:多种方式进入 从index.php页面来看 只需要访问index.php时session[login]不为空就能访问 那么就在访问index.php的时候上传login 随机一个东西就能进去从checklogin页面来看sql注入没有任何过滤 直接联合绕过 密码随意 还有多种方式可以自己去看代码分析 30…...

c语言的字符串函数详解
文章目录 前言一、strlen求字符串长度的函数二、字符串拷贝函数strcpy三、链接或追加字符串函数strcat四、字符串比较函数strcmp五、长度受限制字符函数六、找字符串2在字符串1中第一次出现的位置函数strstr七、字符串切割函数strtok(可以切割分隔符)八、…...

HarmonyOS NEXT应用开发—折叠屏音乐播放器方案
介绍 本示例介绍使用ArkUI中的容器组件FolderStack在折叠屏设备中实现音乐播放器场景。 效果图预览 使用说明 播放器预加载了歌曲,支持播放、暂停、重新播放,在折叠屏上,支持横屏悬停态下的组件自适应动态变更。 实现思路 采用MVVM模式进…...

Java项目:55 springboot基于SpringBoot的在线视频教育平台的设计与实现015
作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 在线视频教育平台分为管理员和用户、教师三个角色的权限模块。 管理员所能使用的功能主要有:首页、个人中心、用户管理、教师管理、课程信…...

说下你对TCP以及TCP三次握手四次挥手的理解?
参考自简单理解TCP三次握手四次挥手 什么是TCP协议? TCP( Transmission control protocol )即传输控制协议,是一种面向连接、可靠的数据传输协议,它是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。 面向连接&a…...
wsl-oracle 安装 omlutils
wsl-oracle 安装 omlutils 1. 安装 cmake 和 gcc-c2. 安装 omlutils3. 使用 omlutils 创建 onnx 模型 1. 安装 cmake 和 gcc-c sudo dnf install -y cmake gcc-c2. 安装 omlutils pip install omlutils-0.10.0-cp312-cp312-linux_x86_64.whl不需要安装 requirements.txt&…...

Python类属性和对象属性大揭秘!
在Python中,对象和类紧密相连,它们各自拥有一些属性,这些属性在我们的编程中起着至关重要的作用。那么,什么是类属性和对象属性呢?别急,让我慢慢给你解释。 类属性 首先,类属性是定义在类本…...

北斗卫星在桥隧坡安全监测领域的应用及前景展望
北斗卫星在桥隧坡安全监测领域的应用及前景展望 北斗卫星系统是中国独立研发的卫星导航定位系统,具有全球覆盖、高精度定位和海量数据传输等优势。随着卫星导航技术的快速发展,北斗卫星在桥隧坡安全监测领域正发挥着重要的作用,并为相关领域…...

如何通过堡垒机JumpServer使用VisualCode 连接服务器进行开发
前言:应用场景 我们经常会碰到需要远程登录到内网服务器进行开发的场景,一般的做法都是通过VPN登录回局域网,然后配置ftp或者ssh使用开发工具链接到服务器上进行开发。如果没有出现问题,那么一切都正常,但到了出现问题…...

【Linux】进程优先级
🌎进程的优先级 文章目录: 进程状态 优先级相关 什么是优先级 为什么要有优先级 进程的优先级 调整进程优先级 调整优先级 优先级极限测试 Linux的调度与切换 总结 前言: 进程…...

Fair Data Exchange:区块链实现的原子式公平数据交换
1. 引言 2024年斯坦福大学和a16z crypto research团队 论文 Atomic and Fair Data Exchange via Blockchain 中,概述了一种构建(包含过期EIP-4844 blobs的)fair data-markets的协议。该论文源自a16z crypto的暑期实习计划,与四名…...
详解优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器
代码示例在最后。 认识一下ThreadPoolTaskExecutor org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor这是由Sping封装的加强版线程池,其实是Spring使用装饰者模式对ThreadPoolExecutor进一步优化。 它不仅拥有ThreadPoolExecutor所有的核心参数…...

Vue3+TS+Vite 找不到模块“@/components/xxx/xxx”或其相应的类型声明
引入vue文件时文件是存在的,引入路径也是对的,报找不到模块,有一些解决方案是在tsconfig.json里面做一些配置,大家可以自行百度(不知道是不是我百度的不对,我的没有解决)还有一种是在项目根目录…...

Vue3-响应式基础:单文件和组合式文件
单文件:html <!DOCTYPE html> <html> <head><title>响应式基础</title> </head> <body><div id"app" ><!-- dynamic parameter:同样在指令参数上也可以使用一个 JavaScript 表达式,需要包…...

DVWA-File Upload文件上传
什么是文件上传漏洞? 黑客利用文件上传后服务器解析处理文件的漏洞上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。 造成文件上传漏洞的原因: 1.服务器配置不当 2.开源编辑器上传漏洞 3.本地文件上传限制被绕过 4.过滤不严格被…...
python之word操作
#pip install python-docx import docx import os pathos.path.abspath(__file__) file_pathos.path.join(path,"大题.docx") print(path) print(file_path) objdocx.Document("大题.docx") #第一个段落 p1obj.paragraphs[2] # print(p1.text) #所有段落 #…...
Linux下新增有root权限的用户
步骤: 1.以 root 用户身份登录到 CentOS 服务器。 2.使用以下命令创建新用户(将 newuser 替换为您想要创建的用户名): sudo adduser username 3.为新用户设置密码: sudo passwd username 按照提示输入新增用户密码 …...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...