Qt客户端阿里云服上传文件

整体原理:

阿里云提供了c程序上传文件到阿里云服务器的sdk工具包,将这个工具包继承在自己的客户端,调用接口即可实现上传文件。

前期准备:

1、阿里云c程序客户端的sdk,下载地址:https://help.aliyun.com/document_detail/32131.html?spm=5176.doc32139.6.768.JIh6Dh (如果地址不对,可以在阿里云的帮助文档中找)

2、安装vs2010或以上版本,目的是为了编译生成oss_c_sdk.lib静态链接库

操作步骤:

1、将下载的文件解压并用vs2010打开,编译生成oss_c_sdk.lib文件(帮助文档有详细方法)

2、将oss_c_sdk目录下的头文件(.h)放在自己工程的源代码目录下,并在工程中添加这些源文件

3、在pro文件中添加库文件

LIBS += -lWS2_32         $$PWD/third_party/lib/Release/oss_c_sdk.lib

其中,

ws2_32是vs库中的文件,(我是win32下的程序,如果不是win32的程序,不用加)

oss_c_sdk可以自己放在合适的目录下,在pro中添加路径即可

4、将所下载文件的third_party/include下的头文件放在源代码目录下,并在pro文件中引用相应目录

INCLUDEPATH += third_party/include         third_party/include/apr         third_party/include/mxml         third_party/include/aprutil

这些文件是oss_c_sdk目录下的头文件需要引用的

5、将third_party\lib\Release下的dll放在项目的bin目录下,即exe所在目录,否则不能运行

6、参照所下载示例中的代码,即可完成文件上传,示例代码如下:

 1 int main(int argc, char *argv[])
 2 {
 3     if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
 4         exit(1);
 5     }
 6
 7     put_object_sample();
 8     append_object_sample();
 9     get_object_sample();
10     head_object_sample();
11     multipart_object_sample();
12     delete_object_sample();
13     aos_http_io_deinitialize();
14
15     system("pause");
16
17     return 0;
18 }

注意事项:

1、win32一定要加上-lWS2_32否则编译不通过

2、注意要调用aos_http_io_initialize与aos_http_io_deinitialize函数,否则联网不成功

3、对于QString转换为char*的解决代码如下:

1     QString sMyfilename = "c:\test.c";
2     QByteArray byteArray_filename = sMyfilename.toLatin1();
3     char* pchar_filename = new char[byteArray_filename.size() + 1];
4     strcpy(pchar_filename, byteArray_filename.data());

4、第三方库要用release目录下的dll,否则会有问题,debug目录下的反正没用过。

总结:

可以仔细阅读下阿里云的帮助文档,其中有很多源码和解决方案,很详细。

另:有问题欢迎交流O(∩_∩)O~ 我的微信:yuexin1396

时间: 2024-10-25 00:47:53

Qt客户端阿里云服上传文件的相关文章

阿里云OSS上传文件模块

1 package com.hughes.bcsc.app.core.util.oss; 2 3 import java.io.ByteArrayInputStream; 4 import java.io.ByteArrayOutputStream; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.IOExceptio

阿里云服务器上传文件失败

最近一直在学习WEB方面的内容,自己做了一个练习站,也没了个阿里云服务作为测试,过程中遇到了不少情况! 首先,由于我用的是ThinkPHP框架,遇到的第一个大麻烦便是上传的内容不能显示在界面上,提示有关于runtime的问题,同时,当我需要上传更多的文件时出现了偶尔成功但大多失败的情况,flashFXP提示553Could not create file.招了好多资料都没有看到什么好的建议或者解决办法,只是明确了问题的根本在于文件的权限.根据好心人提示修改目录权限,我干脆直接把整个目录文件的权限

阿里云OSS上传文件本地调试跨域问题解决

问题描述: 最近后台说为了提高上传效率,要前端直接上传文件到阿里云,而不经过后台.因为在阿里云服务器设置的允许源(region)为某个固定的域名下的源(例如*.cheche.com),直接在本地访问会有跨域问题. 解决方案: 在本机C:\Windows\System32\drivers\etc的hosts文件中(使用管理员身份打开并编辑)添加一行地址映射:127.0.0.1 test.cheche.com 然后把前端运行项目的端口改为80,以vue项目为例(config/index.js) 到这

使用阿里云OSS上传文件

本文介绍如何利用Java API操作阿里云OSS对象存储. 1.控制台操作 首先介绍一下阿里云OSS对象存储的一些基本概念. 1.1 进入对象存储界面 登录阿里云账号,进入对象存储界面,如图所示. 进入后如图所示. 1.2 OSS基本概念 这里不过多介绍如何在阿里云上传下载文件,这些操作基本上点一点都能找到. 1.2.1 Bucket Bucket实质就是阿里云OSS对象存储的一个存储空间,按照计算机理解的话可以理解为一个磁盘(不知道这样比喻是否恰当). 创建桶的过程很简单,如图所示,填写对应内

阿里云oss上传文件

方法一 使用 web interface 上传 方法二 使用 oss browser 官方客户端软件上传,支持桌面操作系统,首次打开时输入 appid 和 secret 登陆,预设 oss 路径为 oss://oef,地域选深圳. 登陆后可上传文件. 方法三 使用 oss util 官方命令行工具上传,可以通过 cron 定时任务实现定期上传.备份等. 首先下载 ossutil64 这个可执行文件(不同系统名字可能不一样),使用方法为首先创建配置文件(修改id 和 secret): cat <<

阿里云OSS 上传文件

阿里云后台管理.API 集成教程.Key/ 域名的查询 1.查看上传的文件在哪? a .百度阿里云,进入官网.然后进入管理控制台 b.左侧菜单栏,进入对象存储 OSS c.进入 Bucket 管理页面,点击创建的bucket 名称 d.进入bucket 管理界面,点击左侧菜单 bucket属性 菜单查看bucket 域名 object 管理  查看管理上传的文件 图片处理   查看图片域名地址 2.查看accessKey  和 screctKey 3.集成 OSS  sdk下载地址和API  地

【记录】java 阿里云OSS上传文件

参考地址:http://www.macrozheng.com/#/architect/mall_arch_10?id=oss 参考地址:https://help.aliyun.com/document_detail/31927.html 参考地址:https://help.aliyun.com/document_detail/91868.html 原文地址:https://www.cnblogs.com/wbl001/p/12301504.html

小程序云开发--云函数上传文件或图片 base64

云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限 所以普通用户想要使用wx.cloud.uploadFile显然是不现实的 但是我们同时也知道,云函数是后台服务端,具有管理员权限,只要能调用云函数上传文件就可以解决这个问题了 参照官方文档中云函数的写法 const cloud = require('wx-server-sdk') const fs = require('fs') const path = require('path') exports.main

使用Putty实现windows向阿里云的Linux云服务器上传文件

1.首先获取PSCP工具 PuTTY小巧方便.但若需要向网络中的Linux系统上传文件,则可以使用PuTTY官方提供的PSCP工具来实现上传.PSCP是基于ssh协议实现. 可以点击这里下载 2.启动PSCP工具 首先需要保证在命令行下可以访问到pscp.exe.可以通过配置Windows的环境变量Path,或者直接通过命令行访问到pscp.exe. 首先进入到当前目录下: 例如:在windows系统下面: 之后开始传输文件到Linux服务器上 格式:pscp 文件 用户名@LinuxIP:目录