【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 按照提示输入新增用户密码 …...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
