当前位置: 首页 > news >正文

cc域名做门户网站南京h5 网站建设

cc域名做门户网站,南京h5 网站建设,软件商城源码,厦门哪里有教网站建设前言 最近在做项目流程优化#xff0c;准备将之前的java对文件的操作转换到c端#xff0c;因此做了基于c的minio操作的测试demo。期间的各种踩坑与问题#xff0c;花了一天时间总算是成功了#xff0c;当然还有一些小问题#xff0c;等待后续其他大拿解决。 项目环境 v…前言 最近在做项目流程优化准备将之前的java对文件的操作转换到c端因此做了基于c的minio操作的测试demo。期间的各种踩坑与问题花了一天时间总算是成功了当然还有一些小问题等待后续其他大拿解决。 项目环境 vs2019个人版 minio操作的代码本来是计划自己下载源码编译的但觉得它麻烦就在csdn上下载了被人编译好的s3 vs2019 debug此处第一个坑我自己刚开始的开发环境直接就是release版本也是最近一直是release版本所以配置完环境变量就没有注意直接开始跑代码了各种问题也没有仔细查折腾了几个小时才发现这个坑我在最后给大家展示。 minio的编译好的链接是链接: AWS S3 对象云存储_SDK msvc_x64下使用_vs2019编译 debug库。 测试代码 需要准备的头文件和宏定义等请严格按照此复制不要轻易重新 #define USE_IMPORT_EXPORT #includeiostream#include aws\s3\S3Client.h #include aws\core\Aws.h #include aws\core\auth\AWSCredentialsProvider.h #include iostream #include fstream using namespace Aws::S3; using namespace Aws::S3::Model; using namespace std;#include aws\s3\model\PutObjectRequest.h #include aws\s3\model\GetObjectRequest.h #include aws/s3/model/ListObjectsRequest.h文件上传的代码 bool uploadfile(std::string BucketName, std::string objectKey, std::string pathkey) {Aws::SDKOptions m_options;S3Client* m_client { NULL };Aws::InitAPI(m_options);Aws::Client::ClientConfiguration cfg;cfg.endpointOverride 192.111.111.111:901; // S3服务器地址和端口cfg.scheme Aws::Http::Scheme::HTTP;cfg.verifySSL false;Aws::Auth::AWSCredentials cred(2222, 23666);m_client new S3Client(cred, cfg,Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Always, false);PutObjectRequest putObjectRequest;//BucketName桶的名称如cplusobjectKeyoss上文件的名称如11.txt,此处要设置好文件的后缀类型因此其是唯一的不然不同文件不就重名了pathkey待上传的数据的本地路径即文件本身putObjectRequest.WithBucket(BucketName.c_str()).WithKey(objectKey.c_str());auto input_data Aws::MakeSharedAws::FStream(PutObjectInputStream, pathkey.c_str(), std::ios_base::in | std::ios_base::binary);putObjectRequest.SetBody(input_data);auto putObjectResult m_client-PutObject(putObjectRequest);if (putObjectResult.IsSuccess()){std::cout Done! std::endl;return true;}else{std::cout PutObject error: putObjectResult.GetError().GetExceptionName() putObjectResult.GetError().GetMessage() std::endl;return false;}if (m_client ! nullptr){delete m_client;m_client NULL;}Aws::ShutdownAPI(m_options); } 文件下载的模块 bool downloadfile1(std::string BucketName, std::string objectKey, std::string pathkey) {Aws::SDKOptions m_options;S3Client* m_client { NULL };Aws::InitAPI(m_options);Aws::Client::ClientConfiguration cfg;cfg.endpointOverride 192.111.111.111:901; // S3服务器地址和端口cfg.scheme Aws::Http::Scheme::HTTP;cfg.verifySSL false;Aws::Auth::AWSCredentials cred(123, 2222);m_client new S3Client(cred, cfg,Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Always, false);Aws::S3::Model::GetObjectRequest object_request;object_request.WithBucket(BucketName.c_str()).WithKey(objectKey.c_str());auto get_object_outcome m_client-GetObject(object_request);if (get_object_outcome.IsSuccess()){Aws::OFStream local_file;local_file.open(pathkey.c_str(), std::ios::out | std::ios::binary);local_file get_object_outcome.GetResult().GetBody().rdbuf();std::cout Done! std::endl;return true;}else{std::cout GetObject error: get_object_outcome.GetError().GetExceptionName() get_object_outcome.GetError().GetMessage() std::endl;return false;}if (m_client ! nullptr){delete m_client;m_client NULL;}Aws::ShutdownAPI(m_options);return true; } 关键的调用方法 int main() {downloadfile1(cplus,logo.png, C:\\Users\\OUR\\Desktop\\新建文件夹\\1.png); uploadfile(cplus,, D:/11.txt); } 其中的关键点 1上传时 函数定义bool uploadfile(std::string BucketName, std::string objectKey, std::string pathkey) 函数调用uploadfile(“cplus”,“csdn.txt”, “D:/11.txt”); 参数说明分别是 nameValueBucketNameminio云端的桶的名称如下截图的cpus、dicom等此处类似于的是文件夹注桶需要提前设置好在minio上新建就行objectKey传到云端的文件的名称和后缀此处需要唯一性如logo.png、csdn.txt名称注key必须是带有后缀的否则上传后不会自动设置文件的后缀pathkey待上传的本地文件的路径本地准备上传的路径和地址注本地文件存在即可 MinIO上“桶”列表 ↑ cplsu桶中的文件情况↑ 问题下载数报错 *Fatal error condition occurred in D:\SDK\aws-sdk-cpp\crt\aws-crt-cpp\crt\aws-c-io\source\event_loop.c:75: aws_thread_launch(cleanup_thread, s_event_loop_destroy_async_thread_fn, el_group, thread_options) AWS_OP_SUCCESS Exiting Application at 0x7FFECBE41E6A: aws_byte_buf_append_null_terminator at 0x7FFECBE41E6A: aws_byte_buf_append_null_terminator at 0x7FFECBE41E6A: aws_byte_buf_append_null_terminator at 0x7FFEBDAD1735: aws_retry_strategy_release at 0x7FFECBE41E6A: aws_byte_buf_append_null_terminator at 0x7FFEBDAD1735: aws_retry_strategy_release at 0x7FFEBDAD1735: aws_retry_strategy_release * 2下载时 std::string BucketName, std::string objectKey, std::string pathkey “cplus”,“logo.png”, C:\Users\OUR\Desktop\新建文件夹\1.png 分别是 nameValueBucketNameminio云端的桶的名称如下截图的cpus、dicom等此处类似于的是文件夹注桶需要提前设置好在minio上新建就行pathkeyMinio上的数据文件注需要文件名和后缀objectKey现在后文件的路径如C:\Users\OUR\Desktop\新建文件夹\1.png注不是设置下载文件接收的文件夹而是文件接收时需要自己设置文件后缀类型否则无法下载 MinIO上“桶”列表 ↑ cplsu桶中的文件情况↑ 下载到的文件↑ 问题下载数报错 PutObject error: SDK failed to sign the request Hello World! Fatal error condition occurred in D:\SDK\aws-sdk-cpp\crt\aws-crt-cpp\crt\aws-c-io\source\event_loop.c:75: aws_thread_launch(cleanup_thread, s_event_loop_destroy_async_thread_fn, el_group, thread_options) AWS_OP_SUCCESS Exiting Application at 0x7FFEE6CF1E6A: aws_byte_buf_append_null_terminator at 0x7FFEE6CF1E6A: aws_byte_buf_append_null_terminator at 0x7FFEE6CF1E6A: aws_byte_buf_append_null_terminator at 0x7FFEC9AD1735: aws_retry_strategy_release at 0x7FFEE6CF1E6A: aws_byte_buf_append_null_terminator at 0x7FFEC9AD1735: aws_retry_strategy_release at 0x7FFEC9AD1735: aws_retry_strategy_release 待后来人解决吧 结论 此代码可以实现对minio的文件上传与下载是最简单的代码。使用的是vs2019、debug 、x64环境、时使用的是现成被人编译好的结果。 改进意见 1对minio的配置最好使用init的方式进行统一配置调用时在桶下建立自己的文件夹 2后续的报错还没有解决计提原因未知我就不查了 3现在只有debug最终的生产环境一般都是release所有孩子要去官网下载源码编译才是成就之举。 4等我有时间了项目有真正需求了再专门写个帖子做minio的c编译。 敬请期待哦 参考资料https://www.jianshu.com/p/74f13cd08cc7
http://wiki.neutronadmin.com/news/101179/

相关文章:

  • 什么是企业网站策划案济南企业网站建设
  • 网站建设公司怎么发展新客户浏览器的网站
  • 怎么做劳务公司网站海南百度推广seo
  • 网站速度查询郑州中原区最新消息
  • 合肥网站建设网站推广津学院怎么给公司建网站
  • 自己做的网站网页错位大连p2p网站建设
  • 网站制作新报价淄博市住房和城乡建设厅网站
  • 网站建设公司哪家好 搜搜磐石网络腾讯网
  • 建立网站的英文短语旅游网站怎么自己做
  • 字形分析网站wordpress 登录插件
  • 网站实施建设流程怎么做类似淘宝一样的网站吗
  • 贵州省城乡住房和建设厅网站首页中国网站建设哪家公司好
  • 网站建设公司主营业务免费建设微网站制作
  • 1000学习做网站贵吗宿州推广公司
  • 服装网站开发dedecms 招聘网站
  • 网页设计网站模板网站建设网页模板购物网站后台流程图
  • 全网vip影视网站一键搭建抖音小程序推广怎么做
  • 网站设计方法丝绸之路网站建设报告
  • 福州做网站互联网公司排名网站建设目标初步目标
  • 网站空间怎么备份说说对网站推广的看法和想法
  • 浦东新区网站推广公司公众号小程序注册
  • 坪山城市建设局官方网站静态html网址网站导航源码
  • wordpress 视频网站学校官网
  • 深圳专业的网站建设网站建设与管理logo
  • 建建设网站的企业2022建站市场
  • 慈溪企业排名网站长沙微商城网站建设
  • 企业网站模板源代码下载前端网站做中 英文
  • 无锡网站制作网站照明网站模板
  • 网站建设的计划书免费网站建设平台
  • 可以接外包的网站今天的新闻联播文字版