对于阿里云的oss上传本地图片的相关注意点
生活随笔
收集整理的這篇文章主要介紹了
对于阿里云的oss上传本地图片的相关注意点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#先在阿里云購買儲存空間
我的結果如下:
然后下載相關的SDK,下面是C++相關SDK包:
https://help.aliyun.com/document_detail/106216.html?spm=a2c4g.11186623.6.1144.7ba37815xyQgAd
并按照這個步驟進行安裝
如果提示找不到.dll文件,則把.dll文件復制到可執行程序所在文件夾。
下面代碼的accesskeyid和accesskeysecret在這里:
#代碼
#include <alibabacloud/oss/OssClient.h> #include <fstream> using namespace AlibabaCloud::OSS;int main(void) {/* 初始化OSS賬號信息 */std::string AccessKeyId = "#########";std::string AccessKeySecret = "###############";std::string Endpoint = "oss-cn-shanghai.aliyuncs.com";std::string BucketName = "xxp";/* yourObjectName表示上傳文件到OSS時需要指定包含文件后綴在內的完整路徑,例如abc/efg/123.jpg這里表示的是你oss上建立的文件夾和文件名稱*/std::string ObjectName = "image/10.jpg";/* 初始化網絡等資源 */InitializeSdk();ClientConfiguration conf;OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);/*這里表示的是你本地文件夾要傳的文件名稱,并且把 \ 改成 / */std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>("C:/Users/dell/Desktop/ThirdParty/image/10.jpg", std::ios::in | std::ios::binary);PutObjectRequest request(BucketName, ObjectName, content);/*(可選)請參見如下示例設置存儲類型及訪問權限ACL*///request.MetaData().addHeader("x-oss-object-acl", "private");//request.MetaData().addHeader("x-oss-storage-class", "Standard");auto outcome = client.PutObject(request);if (!outcome.isSuccess()) {/* 異常處理 */std::cout << "PutObject fail" <<",code:" << outcome.error().Code() <<",message:" << outcome.error().Message() <<",requestId:" << outcome.error().RequestId() << std::endl;ShutdownSdk();return -1;}/* 釋放網絡等資源 */ShutdownSdk();return 0; }##主要注意如下幾點:
1.本地圖片上傳和從內存上傳不一樣,代碼稍微不同。
2.objectname?的是oss上的文件夾及上傳的文件名稱。
3.sdk中的yourlocalfilename?的是本地的文件夾及要上傳的文件名稱。并且
要把復制過來的路徑的“\”改為“/”,不然會報錯,錯誤如下:
PutObject fail,code:ValidateError,message:Request body is in fail state. Logical error on i/o operation.,requestId:
上傳結果圖片和視頻:
總結
以上是生活随笔為你收集整理的对于阿里云的oss上传本地图片的相关注意点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: window系统 实现FFmpeg 录制
- 下一篇: 坚果云