国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

swiftui接入騰訊云對(duì)象存儲(chǔ)cos

這篇具有很好參考價(jià)值的文章主要介紹了swiftui接入騰訊云對(duì)象存儲(chǔ)cos。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?個(gè)人來(lái)說玩玩,還是用swiftui比較好,畢竟寫界面的速度快很多,而且還比較直觀。
有部分邏輯需要接入圖片上傳,因此接入了一下騰訊云對(duì)象存儲(chǔ)cos。
官網(wǎng)上只有swift的教程,沒有swiftui的。記錄一下swiftui的接入過程。

首先引入pod集成項(xiàng)目。

pod 'QCloudCOSXML' 
# 據(jù)說是精簡(jiǎn)版,不過看起來(lái)好像也沒有啥效果,頭文件的引入好像根據(jù)文檔來(lái)還是會(huì)報(bào)錯(cuò)的。
# 本例子只是簡(jiǎn)單的上傳,因此用哪個(gè)都行。
# pod 'QCloudCOSXML/Transfer' 

引入頭文件

import QCloudCOSXML
// 精簡(jiǎn)版用下邊的這個(gè)好像會(huì)報(bào)錯(cuò),找不到這個(gè),用上邊的沒問題
// import QCloudCOSXMLTransfer 

初始化

一般來(lái)說swiftui的app部分是這樣的。不過按照教程直接繼承協(xié)議是不行的。

@main
struct DemoApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

首先新建一個(gè) appdelegate

class AppDelegate: NSObject, UIApplicationDelegate, QCloudSignatureProvider {
    
}

然后在里邊實(shí)現(xiàn)初始化及簽名的回調(diào)。這兩部分感覺不用寫在appdelegate的finish launch里邊,因?yàn)楝F(xiàn)在的應(yīng)用一般還要來(lái)個(gè)隱私協(xié)議。暴露出一個(gè)方法來(lái)給swiftui調(diào)用,控制流程比較方便。最好粘貼代碼,不要手敲,例如 QCloudAuthentationV5Creator 這個(gè)有個(gè)虛方法QCloudAuthentationCreator,稍不注意就失敗了。
另外本例子用的是客戶端直接同cos通訊方式,如果出現(xiàn)泄漏直接換secret也是可行的。

class AppDelegate: NSObject, UIApplicationDelegate, QCloudSignatureProvider {
    
    func signature(with fileds: QCloudSignatureFields!, request: QCloudBizHTTPRequest!, urlRequest urlRequst: NSMutableURLRequest!, compelete continueBlock: QCloudHTTPAuthentationContinueBlock!) {
        let credential = QCloudCredential.init()
        credential.secretID = "xxx" // 密鑰ID
        credential.secretKey = "xxx" // 密鑰secret
        let creator = QCloudAuthentationV5Creator.init(credential: credential)
        let signature = creator?.signature(forData: urlRequst)
        continueBlock(signature, nil)
    }
    
    func initQCloud() {
        let config = QCloudServiceConfiguration.init()
        let endpoint = QCloudCOSXMLEndPoint.init()
        endpoint.regionName = "ap-beijing" // bucket region
        endpoint.useHTTPS = true
        config.endpoint = endpoint
        config.signatureProvider = self
        QCloudCOSXMLService.registerDefaultCOSXML(with: config)
        QCloudCOSTransferMangerService.registerDefaultCOSTransferManger(
            with: config)
    }
}

把a(bǔ)ppdelegate加入到swiftui的app中。

struct DemoApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
                .onAppear {
                    delegate.initQCloud()
                }
        }
    }
}

初始化到此完畢。
初始化完整代碼:

import SwiftUI
import QCloudCOSXML

class AppDelegate: NSObject, UIApplicationDelegate, QCloudSignatureProvider {
    
    func signature(with fileds: QCloudSignatureFields!, request: QCloudBizHTTPRequest!, urlRequest urlRequst: NSMutableURLRequest!, compelete continueBlock: QCloudHTTPAuthentationContinueBlock!) {
        let credential = QCloudCredential.init()
        credential.secretID = "xxx" // 密鑰ID
        credential.secretKey = "xxx" // 密鑰secret
        let creator = QCloudAuthentationV5Creator.init(credential: credential)
        let signature = creator?.signature(forData: urlRequst)
        continueBlock(signature, nil)
    }
    
    func initQCloud() {
        let config = QCloudServiceConfiguration.init()
        let endpoint = QCloudCOSXMLEndPoint.init()
        endpoint.regionName = "ap-beijing" // bucket region
        endpoint.useHTTPS = true
        config.endpoint = endpoint
        config.signatureProvider = self
        QCloudCOSXMLService.registerDefaultCOSXML(with: config)
        QCloudCOSTransferMangerService.registerDefaultCOSTransferManger(
            with: config)
    }
}

struct DemoApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
                .onAppear {
                    delegate.initQCloud()
                }
        }
    }
}

上傳部分

簡(jiǎn)單上傳部分

import QCloudCOSXML

func updatePic(img: UIImage) {
    let picPath = "temp/\(Day(date: date).format(format: "yyyy-MM-dd"))/\(UUID().uuidString).png"
    
    let put = QCloudCOSXMLUploadObjectRequest<AnyObject>()
    put.bucket = "xxx" // bucket id
    put.object = picPath // 上傳路徑
    put.body = img.pngData() as AnyObject
    put.setFinish { res, err in
        print("upload obj finish \(res) \(err)")
    }
    QCloudCOSTransferMangerService.defaultCOSTransferManager().uploadObject(put)
}

到此cos接入完畢。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-541367.html

到了這里,關(guān)于swiftui接入騰訊云對(duì)象存儲(chǔ)cos的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【golang】go獲取騰訊云cos對(duì)象存儲(chǔ) 并轉(zhuǎn)為base64字符串輸出

    需要引入騰訊云cos的sdk https://github.com/tencentyun/cos-go-sdk-v5 配置yaml如下: go代碼編寫如下:

    2024年02月11日
    瀏覽(28)
  • 騰訊云國(guó)際-如何使用對(duì)象存儲(chǔ)COS在 CKafka 控制臺(tái)創(chuàng)建數(shù)據(jù)異步拉取任務(wù)?騰訊云代充

    騰訊云國(guó)際-如何使用對(duì)象存儲(chǔ)COS在 CKafka 控制臺(tái)創(chuàng)建數(shù)據(jù)異步拉取任務(wù)?騰訊云代充

    Datahub 支持接入各種數(shù)據(jù)源產(chǎn)生的不同類型的數(shù)據(jù),統(tǒng)一管理,再分發(fā)給下游的離線/在線處理平臺(tái),構(gòu)建清晰的數(shù)據(jù)通道。 本文以 COS 數(shù)據(jù)為例介紹如何在 CKafka 控制臺(tái)創(chuàng)建數(shù)據(jù)異步拉取任務(wù),并對(duì)任務(wù)進(jìn)行修改配置,幫助用戶更好地了解數(shù)據(jù)接入功能。 關(guān)聯(lián)unirech注冊(cè)騰訊云

    2024年02月08日
    瀏覽(30)
  • 騰訊云COS的快速接入

    騰訊云COS的快速接入

    最近在研究一個(gè)剪貼板粘貼工具,實(shí)現(xiàn)粘貼圖片,返回可訪問的地址,這個(gè)在我的嗶哩嗶哩上有出一期視頻??。但是,我發(fā)現(xiàn)部分博客平臺(tái)不能正常的轉(zhuǎn)載我的圖片鏈接,于是研究了一下騰訊云的COS(阿里的叫OSS,最開始我還不知道騰訊云的叫COS??),想著其它平臺(tái)應(yīng)該可

    2024年02月13日
    瀏覽(17)
  • 騰訊云COS存儲(chǔ)是什么_騰訊云COS有什么用?

    由于這是給新手寫的東西,就盡量整得簡(jiǎn)單易懂些吧。 作為國(guó)內(nèi)第二大的云服務(wù)廠商,安全性,可靠性這些東西就不用過多做介紹了(這里并非說他絕對(duì)安全,而是比那些小平臺(tái)的安全性高N個(gè)級(jí)別) 騰訊云COS與隔壁阿里云的OSS都是提供對(duì)象存儲(chǔ)的服務(wù),(即文件存儲(chǔ))。比

    2024年02月11日
    瀏覽(26)
  • 騰訊云存儲(chǔ)COS

    騰訊云存儲(chǔ)COS

    對(duì)象存儲(chǔ)(Cloud Object Storage,COS)是由騰訊云推出的無(wú)目錄層次結(jié)構(gòu)、無(wú)數(shù)據(jù)格式限制,可容納海量數(shù)據(jù)且支持 HTTP/HTTPS 協(xié)議訪問的分布式存儲(chǔ)服務(wù)。騰訊云 COS 的存儲(chǔ)桶空間無(wú)容量上限,無(wú)需分區(qū)管理,適用于 CDN 數(shù)據(jù)分發(fā)、數(shù)據(jù)萬(wàn)象處理或大數(shù)據(jù)計(jì)算與分析的數(shù)據(jù)湖等多種

    2024年02月12日
    瀏覽(21)
  • [php-cos]ThinkPHP項(xiàng)目集成騰訊云儲(chǔ)存對(duì)象COS

    [php-cos]ThinkPHP項(xiàng)目集成騰訊云儲(chǔ)存對(duì)象COS

    Cos技術(shù)文檔 1、安裝phpSdk 通過composer的方式安裝。 1.1 在composer.json中添加 qcloud/cos-sdk-v5: =2.0 將composer.lock刪除,然后運(yùn)行composer install 就安裝成功了。 查看vendor中的是否存在qcloudcos-sdk-v5,安裝包中有使用的例子:sample文件夾中。 2、添加配置文件 3、編寫cos工具類 測(cè)試: pos

    2024年02月15日
    瀏覽(17)
  • springboot集成COS對(duì)象存儲(chǔ)

    springboot集成COS對(duì)象存儲(chǔ)

    新建密鑰(后面配置要用到) 此處使用工具類進(jìn)行基本屬性配置,也可選擇在yml中配置

    2024年01月22日
    瀏覽(25)
  • 使用uni-file-picker上傳文件(圖片)到騰訊云存儲(chǔ)COS步驟

    使用uni-file-picker上傳文件(圖片)到騰訊云存儲(chǔ)COS步驟

    微信小程序上傳文件到騰訊云存儲(chǔ)COS: 準(zhǔn)備步驟: 1.拿到騰訊云的API密鑰:在API密鑰管理中獲取SecretId和SecretKey,沒有的話生成一個(gè) 2.開通COS存儲(chǔ)創(chuàng)建存儲(chǔ)桶,需要拿到存儲(chǔ)桶名字和所在地域 3.打開對(duì)象存儲(chǔ)的產(chǎn)品文檔進(jìn)入SDK文檔里的小程序SDK里面有源碼下載地址 主要是為了

    2024年02月07日
    瀏覽(25)
  • 什么是對(duì)象存儲(chǔ)COS?它又有哪些優(yōu)勢(shì)?

    對(duì)象存儲(chǔ)(Cloud Object Storage,COS)是騰訊云提供的一種存儲(chǔ)海量文件的分布式存儲(chǔ)服務(wù),用戶可通過網(wǎng)絡(luò)隨時(shí)存儲(chǔ)和查看數(shù)據(jù)。騰訊云 COS 使所有用戶都能使用具備高擴(kuò)展性、低成本、可靠和安全的數(shù)據(jù)存儲(chǔ)服務(wù)。 COS 通過控制臺(tái)、API、SDK 和工具等多樣化方式簡(jiǎn)單、快速地接入

    2024年01月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包