• 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_partylibRelease下的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 }
    View Code

    注意事项:

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

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

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

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

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

     

    总结:

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

     

    另:有问题欢迎交流O(∩_∩)O~

  • 相关阅读:
    C# 使用FileSystemWatcher类来对一个日志文件的变化进行实时监测
    C# 高效提取txt文档最后一行数据
    C# 高效提取txt文档最后一行数据
    Bat 批处理之 for/f 详解
    Bat 批处理之 for/f 详解
    windows bat命令 如何获取文件最后一行
    windows bat命令 如何获取文件最后一行
    C#读取文件或者字符流的最后几行,类似linux的tail命令OK
    C#读取文件或者字符流的最后几行,类似linux的tail命令OK
    C#开源文件实时监控工具Tail&TailUI
  • 原文地址:https://www.cnblogs.com/huoqs/p/6407249.html
Copyright © 2020-2023  润新知