Qt5使用阿里云OSS C++ SDK上传、下载、删除、列举文件

5 篇文章 0 订阅
3 篇文章 0 订阅

一、安装OSS C++ SDK

具体操作参照阿里云官方文档: 安装 OSS C++ SDK

注意点:

1.cmake 32位或者64位 VS2017里面生成解决方案的位数也要跟cmake的一样 否则报错

2.若用VS2017需要以管理员身份运行

二、Qt新建一个mainwindow项目,在.pro文件添加以下代码导库

INCLUDEPATH += E:/aliyun-oss-cpp-sdk-master/sdk/include \
               E:/aliyun-oss-cpp-sdk-master/sdk/src \
               E:/aliyun-oss-cpp-sdk-master/third_party/include

LIBS += -LE:/aliyun-oss-cpp-sdk-master/third_party/lib/x64 -llibcurl
LIBS += -LE:/aliyun-oss-cpp-sdk-master/third_party/lib/x64 -llibeay32
LIBS += -LE:/aliyun-oss-cpp-sdk-master/third_party/lib/x64 -lssleay32
LIBS += -LE:/aliyun-oss-cpp-sdk-master/build/lib/Debug -lalibabacloud-oss-cpp-sdk

三、mainwindow.cpp上传代码

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <iostream>
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

MainWindow::MainWindow(QWidget* parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    
   	/* 初始化OSS账号信息 */
	/* 如何获取AccessKeyId和AccessKeySecret:
	https://help.aliyun.com/knowledge_detail/48699.html
	*/
	std::string AccessKeyId = "YourAccessKeyId";
	std::string AccessKeySecret = "YourAccessKeySecret";
	
	/* 根据文档填写所需Endpoint:
	https://help.aliyun.com/document_detail/31837.html?spm=a2c4g.11186623.6.586.48977f5ev3c5Ht
	*/
	std::string Endpoint = "oss-cn-shenzhen.aliyuncs.com";
	/* 填写你的存储空间名/
	std::string BucketName = "YourBucketName";
	/* yourObjectName表示上传文件到OSS时需要指定包含文件后缀在内的完整路径,下面为image文件夹下的bkg1.png文件 */
	std::string ObjectName = "image/bkg1.png";

	/* 初始化网络等资源 */
	InitializeSdk();

	ClientConfiguration conf;
	OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);

	/* 上传文件 */
	/* yourLocalFilename由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt */
	auto outcome = client.PutObject(BucketName, ObjectName, "D:/bkg1.png");

	if (!outcome.isSuccess()) {
		/* 异常处理 */
		std::cout << "PutObject fail" <<
			",code:" << outcome.error().Code() <<
			",message:" << outcome.error().Message() <<
			",requestId:" << outcome.error().RequestId() << std::endl;
		ShutdownSdk();
		
	}

	/* 释放网络等资源 */
	ShutdownSdk();
	
}

MainWindow::~MainWindow()
{
    delete ui;
}

注意点:Qt项目运行目录下需要放aliyun-oss-cpp-sdk-master\third_party\lib\x64路径下的四个DLL文件

以64位为例

在E:\qtProjectPath\build-OSS-Desktop_Qt_5_12_0_MSVC2017_64bit-Debug\debug目录下放以下四个dll文件:

在这里插入图片描述
在这里插入图片描述

运行后在OSS控制台可以查看到上传的文件:

在这里插入图片描述

四、其他API使用

其他 API 使用大同小异,照着官方文档一步步配置就可以完成。

在这里插入图片描述

阿里云OSS(对象存储服务)提供了丰富的API和工具,可以方便地实现文件上传下载功能。根据提供的引用内容,以下是基于阿里云OSS实现文件上传下载的步骤: 1. 配置OSS服务:在阿里云官网上购买OSS服务,并完成相应的配置。\[1\] 2. 创建Controller层:在Controller层中,使用@RestController注解标记类,并使用@PostMapping注解标记上传文件的接口。在接口方法中,使用@ApiOperation注解添加接口的描述信息,使用@ApiImplicitParam注解指定接口参数。\[2\] 3. 实现上传功能:在Service层中,创建实现上传功能的服务类。在该类中,注入OSSUtils工具类,并实现上传文件的方法。在方法中,首先对文件类型进行检查,然后调用工具类的上传文件方法。\[3\] 4. 实现下载功能:类似地,在Service层中创建实现下载功能的服务类。在该类中,注入OSSUtils工具类,并实现下载文件的方法。在方法中,调用工具类的下载文件方法。 需要注意的是,上传下载文件时,需要使用阿里云OSS提供的SDK或API进行操作。具体的实现步骤可以参考阿里云的文档,其中包括SDK的引入、配置OSS客户端、创建Bucket等详细步骤。 总结起来,基于阿里云OSS实现文件上传下载的步骤包括:配置OSS服务、创建Controller层、实现上传功能和下载功能,并使用阿里云OSS提供的SDK或API进行操作。 #### 引用[.reference_title] - *1* *2* *3* [在项目中使用阿里云oss实现文件上传功能](https://blog.csdn.net/m0_63445035/article/details/130417961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值