This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3200:如何将/sys/mcuimg2.bin 从 cc3200设备下载到我的本地 PC

Guru**** 2589280 points
Other Parts Discussed in Thread: UNIFLASH, CC3200, CC3200SDK, CC3200MOD

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1075611/cc3200-how-can-i-download-the-sys-mcuimg2-bin-from-cc3200-device-to-my-local-pc

部件号:CC3200
“线程”中讨论的其它部件:TestUNIFLASH,,,,

 我在 OTA 流程中遇到问题。 从分动箱下载 MCU 图像后,设备在重启时卡住。我不确定设备在重启时是否卡住,或者无法加载 所下载的新测试图像。

要调试此问题,我希望 使用 uniflash 重新读取/sys/mcuimg2.bin,并与 OTA 文件进行比较,以查看下载中是否有任何问题。此问题是在该设备正常运行 近4年前的最后1周发生的。

请问 如何将/sys/mcuimg2.bin 从 cc3200设备下载到我的本地 PC 上。

如果您可以建议他们是否是调试此问题的其他方法,这将非常有帮助。

设备中使用的 Service Pack:  

主机驱动程序版本:1.0.0.10
NWP 版本:2.4.0.2
固件版本:31.1.3.0.1
PHY 版本:1.0.3.34
内部版本2.4.0.2.31.1.3.1.1.1.0.3.34

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    很难说出您的案例发生了什么。 如果没有详细的调试信息,将很难确定发生了什么情况。

    CC3200设备无法通过 Uniflash (3.4.1)读取文件。 如果要在 CC3200设备上重新读取文件,您需要执行以下操作:

    • 按 Uniflash 软件列出文件系统中的文件(以了解 sFlash 包含的文件)
    • 创建您自己的应用程序,该应用程序将通过 SL_ API 读取文件并将其发送出去(例如通过 UART),您将通过 JTAG 将该应用程序上传到 CC320内部的 RAM 中

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我遇到了同样的2个问题,即在重新启动时卡住以及无法使用 uniflash 读取图像文件。

    我尝试修改引导加载程序以确定故障所在(在重新引导时卡住或无法加载新测试映像),但新生成的引导加载程序无法启动/加载已知/工作映像。 是否发现了卡在重新启动时问题的根本原因?

    我还尝试使用命令行 uniflash -export 从 CC3200MOD 读取(根据 uniflash _3.4\CCS_base_scripting\examples\uniflash \cmdline\unix_readme.txt),但我尚未获得有效的.CCXML。 我尝试了 SDK 中的一个(CC3200SDK_1.3.0\cc3200-SDK\tools\CCS_patch\CC3200.CCXML),但失败,显示“频率超出范围”消息。  正在使用命令行导出 bin a dead end 方法?

    我正在使用 CC3200MOD,SDK1.3,Service Pack 1.0.1.11-2.10.0.0

    Uniflash v3.4

    Eclipse IDE

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    最后,我找到了 MCU 更新后挂起问题的路由案例。这是因为 MCU 图像从下拉列表框下载时损坏。

    使用 TI cc3200从下拉列表框下载的任何文件不仅 MCU 图像损坏 。从   下拉列表框下载的两个文件附有日志文件和 Wireshark 日志。

    文件:f00_cfg_HW.json

    文件内容:  

    {
    	“版本”“4.0 MFG.18”
    } 

    但从下拉列表框下载的数据是:

    23.

    “版本”:“4.0 MFG.18

    在这种情况下,总字节下载长度与字节数量匹配,但最后两个字节缺失,请求中增加了2个额外字节。
    其他文件也在发生一些事情。

    2.

     文件:f00_cfg_sw.json

    文件内容:

     

    
    "软件包版本" 70岁, 
    “service_pack_version”“1.0.0.10”
    "arm_sw_version"(支撑臂 SW_version) “MFG”
    	“位子 SW_VERSION” “MFG”
    "捆绑版本" “2.0”
    } 

    但从下拉列表框下载的数据是: 

    BC

    “package_version”:70,
    “service_pack_version”:“1.0.0.10”,
    "arm_sw_version":"MFG",
    “BLE_SW_VERSION”:“MFG”,
    “bundle_version”:“2.0


    最近我们还收到了来自下拉列表框的有关 TLS 更改的电子邮件,但这不会影响这一点,因为 CC3200使用端口443 TLS1.2。
    我还在使用 Marvell 设备,但该设备无法从下拉列表中正确下载文件。



    已附加 Wireshark 日志以供参考:

    e2e.ti.com/.../edcmdropbox.pcap.txt

    发件人寄件箱:

    您好,Aladdin Connect,

    我们最近更新了我们的访问令牌,并将更新 TLS—您需要查看以确保您的应用程序正确处理这些令牌。

    当您查看应用程序时,请务必查看我们的新标签 API!

    提醒:令牌和权限

    作为提醒,Dropbox OAuth 流开始默认为返回短期访问令牌。 当验证 URL 中的参数未指定时,此 token_access-type 将默认为联机。 对缺省值的这一更改正在逐步实施。

    现有的长寿命访问令牌不受影响,并且仍然有效。

    需要后台访问的应用程序需要更新才能使用刷新令牌,使用 我们更新的 SDK 可以更轻松地使用刷新令牌。 所有其他应用程序都应确保用户在令牌过期时被指示重新授权。

    有关详细说明,请参阅:

    提醒:TLS 1.0和1.1弃用

    自2022年1月3日起,Dropbox API 将要求呼叫使用 TLS 1.2或更高版本。 使用 TLS 1.0或1.1的流量将被拒绝。

    最新的 Dropbox SDK 将选择 TLS 1.2 (如果在环境中可用),但两年以上的版本可能需要更新。 尤其是 Dropbox Java SDK 的用户 应更新到 v3.1.1 (2019年6月发布)或更高 版本,Dropbox Python SDK 应更新到 v8.4.1 (2017年11月发布)或更高版本。

    通常,在现代环境中,使用最新库构建的应用程序不需要其他操作。 自2014年以来,TLS 1.2一直是主要移动和桌面操作系统的默认设置。 应用程序可能在较旧或异常环境中运行的开发人员应调查以确保兼容性。

    平台更新:预览中的标记 API

    Dropbox 用户现在可以使用标记来组织和搜索内容。 请 在此处查看功能公告,并 在此处查看我们的帮助中心页面,了解如何使用这些公告

    标签 API 现在可用于预览。 您现在可以 添加删除 和获取这些标签! 标签是字母数字字符串,最多32个字符。 一个文件最多可以有20个标签。

    请注意,所有有权访问 Dropbox.com 上文件的用户都可以看到这些标签。 如果您希望通过 API 将标记专用于应用程序,请改用 文件属性 API

    如往常一样,如果您有任何疑问,请访问 我们的开发商论坛提交一张机票

    谢谢,
    Dropbox 平台团队



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    问题未解决。从 下拉框下载文件时,文件看起来已损坏。 由于这种情况,它 无法在测试模式下执行映像,但看起来设备在重启时卡住,但实际上它卡住了,无法启动新下载的映像。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Ling,

    不能。您不能使用 Uniflash CLI 从 CC3200 SPI 闪存中获取.bin 文件。 CC3200设备不支持此功能。 但是,对于 CC3220,CC3235和 CC330设备,它是受支持的。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,林加·斯瓦米,

    下载 OTA 后,很难说出您的.bin 文件为何损坏。 在您结束时,通过设备的日志不会重现问题,这一切都是猜测的。

    顺便说一句:您似乎正在使用非常旧的 SDK 和 ServicePack (SDK 1.1.0从2015年开始?)。  当您的设备启用 OTA 时,使用此类旧 ServicePack 是一个非常糟糕的主意。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Jan,

      新 SDK 也出现了同样的问题。请告诉我需要什么类型的日志。

    此致,

    斯瓦米林。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    完成 OTA 更新失败时记录。 这些可以让我们知道正在发生的事情。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经共享了钢丝绳电鲨日志和 文件详细信息。我将再次添加这些日志以供您参考。

    仅供参考:

    下载成功 ,但 从 drombox 下载的数据不正确。  

     文件尝试从下拉框下载 :f00_cfg_HW.json

    文件内容:  

    {
    	“版本”“4.0 MFG.18”
    } 

    但从下拉列表框下载的数据是:

    23.

    “版本”:“4.0 MFG.18


    文件正在尝试从下拉列表框 :f00_cfg_sw.json 下载

    文件内容:

     

    
    "软件包版本" 70岁, 
    “service_pack_version”“1.0.0.10”
    "arm_sw_version"(支撑臂 SW_version) “MFG”
    	“位子 SW_VERSION” “MFG”
    "捆绑版本" “2.0”
    } 

    但从下拉列表框下载的数据是: 

    BC

    “package_version”:70,
    “service_pack_version”:“1.0.0.10”,
    "arm_sw_version":"MFG",
    “BLE_SW_VERSION”:“MFG”,
    “bundle_version”:“2.0

    Wireshark 日志文件:

    e2e.ti.com/.../8168.edcmdropbox.pcap.txt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我指的是 OTA 库的调试日志,这意味着 Report()从 OTA 代码提供的日志。

    Wireshark 日志是无用的,因为.pcap 文件内部是加密的 TLS 通信。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    调试日志。 请告诉我是否需要任何其他数据来检查问题。更新80K 设备对我们来说非常重要。  

    SL_extLib_OtaRun:调用 OtaClient_ConnectServer OTA 服务器= api.dropboxapi.com

    SL_extLib_OtaRun:OtaClient_UpdateCheck,vendorStr=pkg_00039

    元数据文件=/pkg_00039/f00_cfg_HW.json,大小=35

    元数据文件=/pkg_00039/f00_cfg_sw.json,大小=188

    SL_extLib_OtaRun:OtaClient_UpdateCheck,numUpdates=2

    [info][OTA ]更新检查,找到了/pkg_00039/f00_cfg_HW.json 文件
    [info][OTA ]更新检查,找到了/pkg_00039/f00_cfg_sw.json 文件
    SL_extLib_OtaRun:OtaClient_GetNextUpdate:file=/pkg_00039/f00_cfg_HW.json,size=35

    _ReadFileHeaders:跳过 http 头

    CdnClient_Run:创建/打开写入文件/cfg/hw.json

    CdnClient_Run:文件已打开

    CdnClient_Run:写入大小35
    文件/cfg/HW.json
    总计0。




    *********** pCdnClient->recv_Buf 数据************


    23.

    “版本”:“4.0 MFG.18

    《国家安全与发展报告》


    CdnClient_Run:文件结束

    CdnClient_Run:下载文件已完成-大小=35

    SL_extLib_OtaRun:--下载文件已完成/cfg/HW.json

    SL_extLib_OtaRun:OtaClient_GetNextUpdate:file=/pkg_00039/f00_cfg_SW.json,size=188

    _ReadFileHeaders:跳过 http 头

    CdnClient_Run:创建/打开写入文件/cfg/sw.json

    CdnClient_Run:文件已打开

    CdnClient_Run:写入大小188
    文件/cfg/sw.json
    总计0。




    *********** pCdnClient->recv_Buf 数据************


    BC

    “package_version”:70,
    “service_pack_version”:“1.0.0.10”,
    "arm_sw_version":"MFG",
    “BLE_SW_VERSION”:“MFG”,
    “bundle_version”:“2.0

    《国家安全与发展报告》


    CdnClient_Run:文件结束

    CdnClient_Run:下载文件已完成-大小=188

    SL_extLib_OtaRun:--下载文件已完成/cfg/sw.json

    SL_extLib_OtaRun:---- 更新结束

    _OtaCleanToIdle:关闭 OTA 客户端和 CDN 客户端并恢复空闲状态

    [info][OTA 设置图像测试(2)-评估0

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    添加文件以供参考  

    e2e.ti.com/.../f00_5F00_cfg_5F00_HW.json.txte2e.ti.com/.../f00_5F00_cfg_5F00_DCMSetup.json.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    当设备在 OTA 更新过程中出现故障时(将 损坏的文件写入 sFlash 时),是否确定上述日志为完整日志? 因为您提供的日志对我来说毫无意义。 也许您可以等待其他人的回答。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Jan,

    这是在 OTA 过程中打印的完整日志报告,但我删除了这两个日志(SL_extLib_OtaRun: ResourceMetadata CDN 文件 URL =和 _ReadFileHeaders: domain=),因为它具有分接框键。

    如果 您观察到日志 OTA 成功,它正在下载具有相同字节数量的文件,但 数据错误。第一个文件的最后两个字节丢失,前两个字节不同,则文件数据相同的情况发生 在第二个文件下载期间。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="441142" url="~ë/support/wireless-connectivity /wi-fi-group/wi-fi /f/wi-fi-forum/1075611/cc3200-wo-can-i-download-the-sys-mcumimg2-bin-from-cc3200-device-my-my-local-PC/39833684,该文件也无法从 Marvell 下载,无法从该文件下载到我的任何 Marvell 文件[#83393684 /39364]。

    从 Dropbox 下载的文件在 Marvall 设备上可以正常下载(大概是相同的),但在 CC3200上不能正常下载,这一点很有趣。 这个问题只是最近才出现。  

    我也正在从 Dropbox 下载,我上次在1月27日测试了 OTA,没有问题。

    基于林加·斯瓦米的调查结果,CC3200 的下载和/或写入 SFlash 的过程中是否存在不在 Marvell 上的错误? 可能是 Dropbox 下载过程中的一些新内容触发了此错误(如果这是正确的术语),这不会影响 Marvell 设备? 这是我的猜测。  CC3200似乎只检查文件大小,因此没有意识到文件损坏,如林加·斯瓦米所述,文件开头有两个额外的字节,结尾有两个字节被截断

    我想问的另一件事是引导加载程序的恢复能力。 我认为将映像设置为“测试就绪”的要点是让主引导加载程序测试映像。 那么,为什么 CC3200无法从恢复,无法 将新映像加载到 ROM 或运行损坏的映像?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     看起来 Dropbox 现在使用的是其 CDN 服务器的“传输编码:分块”,OTA lib 不支持该服务器。 这可以在库中更新,但不 适用于 该字段中的设备。

    您需要联系 Dropbox 支持并请求他们返回(临时)上一个(非分块)方法。  

     虽然 Dropbox 通常响应 此类请求,但我们绝对建议您使用我们的 Dropbox 代码作为参考,并切换到其他服务器以进行 OTA  (对于 OTA ,您 更喜欢  具有 IOT 感知功能并 将 OTA 作为其目标之一的服务器,因此不会经常更新其接口)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,您的答案正确。来自分动箱的标题响应是:

    HTTP/1.1 200正常
    接受范围:字节
    高速缓存控制:最大寿命=60
    ntend-Disposition:attachment;filename="f00_cfg_HW.json";filename*= UTF-8 'f00_cfg_HW.json
    content-Security-Policy:沙盒
    标签:1644522758964039d
    AGMA:公共
    费雷尔政策:无裁判
    RY:源站,接受编码
    X-Content-Security-Policy:沙盒
    X-Content-Type-Options:nosniff
    Dropbox 内容长度:35
    机器人标签:noindex,nollow,nimageindex
    X-Server-respone-time:112
    Webkit-CSP:沙盒
    内容类型:文本/普通;字符集=UTF-8
    CePT-Encoding:身份,gzip
    TE:格林威治标准时间2022年2月14日,星期一18:13:21
    服务器:特使
    rict-Transport-Security:Max-age=31536000;包括子域;预载
    X-Robots-标签:noindex,noFollow,noimageindex
    Dropbox 响应-来源:FANT_REMOTE
    X-Dropbox 请求 ID:d6e89691014f4b2b9b3c8f300443ed46
    传输编码:分块

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果可能,请立即使用下拉列表框尝试 OTA,查看您的回复  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否详细说明如何更新 OTA 库以使用“传输编码:分块”?

    您是否有更多有关如何切换到另一台服务器以进行 OTA 的资源/应用说明? 到目前为止,我在 SDK (1.3.0)中只找到了2014文档。  

    我在 Dropbox 论坛上发现有人请求在进行此更改之前恢复:

    www.dropboxforum.com/.../true

    没有做出任何承诺,但如果确实发生了这种情况,我希望有一个可以部署的解决方案。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有关支持“传输编码:分块化”的示例,您可以参考 CC32xx (CC3220/35) SDK(https://www.ti.com/tool/SIMPLELINK-CC32XX-SDK )中的代码,其中包括通过 HttpClient 库提供的支持(请参阅 source/net/http/HttpClient.c):

    /*
     *  ======== getChunkedData ========
     *  Get chucked transfer encoded data
     */
    static int16_t getChunkedData(HTTPClient_CB *cli, char *body, uint32_t len, bool *moreFlag)
    {
        bool mFlag = false;
        char crlf;
        int16_t ret = 0;
        uint32_t chunkLen;
        uint32_t buffereddBodyLen = cli->validBufEnd - cli->validBufStart;
    
        *moreFlag = true;
    
        /* Check if in the middle of reading response body? */
        chunkLen = cli->bodyLen;
        if (chunkLen == 0)
        {
            ret = readLine(cli, body, len, &mFlag, buffereddBodyLen);
            if (ret < 0)
            {
                return (ret);
            }
            /* Get current chunk length */
            chunkLen = strtoul(body, NULL, 16);
            /* don't need the remaining buffer */
            if (mFlag)
            {
                ret = readLine(cli, body, len, &mFlag , buffereddBodyLen);
                if (ret < 0)
                {
                    return (ret);
                }
            }
    
            if (chunkLen == 0)
            {
                /* skip the rest (trailer headers) */
                if (getCliState(cli,TRAILER_STATE))
                {
                    do
                    {
                        cli->validBufStart = cli->buf;
                        cli->validBufEnd = cli->buf;
                        ret = SlNetSock_recv(cli->ssock,cli->validBufStart,HTTPClient_BUF_LEN - 1, 0);
                        if (ret < 0)
                        {
                            return (ret);
                        }
                        cli->validBufEnd += ret;
                        *cli->validBufEnd = '\0';
                    }while(strstr(cli->validBufStart,HTTPClient_crlfcrlf) == NULL);
                    setCliState(cli,TRAILER_STATE,false);
                }
                ret = readLine(cli, &crlf, sizeof(crlf), &mFlag, buffereddBodyLen);
                if (ret < 0)
                {
                    return (ret);
                }
                *moreFlag = false;
                setCliState(cli,CHUNKED_STATE,false);
                cli->bodyLen = 0;
    
                return (0);
            }
    
            cli->bodyLen = chunkLen;
        }
    
        if (chunkLen < len)
        {
            len = chunkLen;
        }
    
        ret = readRawResponseBody(cli, body, len);
        if (ret > 0)
        {
            cli->bodyLen -= ret;
            /* Clean up the CRLF */
            if (cli->bodyLen == 0)
            {
                buffereddBodyLen = cli->validBufEnd - cli->validBufStart;
                chunkLen = readLine(cli, &crlf, sizeof(crlf), &mFlag, buffereddBodyLen);
                if (chunkLen != 0)
                {
                    return (chunkLen);
                }
            }
        }
        return (ret);
    }
    
    int16_t HTTPClient_readResponseBody(HTTPClient_Handle client, char *body, uint32_t bodyLen,bool *moreDataFlag)
    {
        HTTPClient_CB *cli = (HTTPClient_CB *)client;
        int16_t ret = 0;
        uint32_t buffereddBodyLen = 0;
    
        if ((body == NULL) || (cli == NULL) || (moreDataFlag == NULL))
        {
            return(HTTPClient_ENULLPOINTER);
        }
    
        buffereddBodyLen = cli->validBufEnd - cli->validBufStart;
    
        if (buffereddBodyLen > 0)
        {
            if (bodyLen < buffereddBodyLen)
            {
                return(HTTPClient_EBODYBUFSMALL);
            }
            if (!getCliState(cli, CHUNKED_STATE))
            {
                memcpy(body,cli->validBufStart,buffereddBodyLen);
                cli->bodyLen -= buffereddBodyLen;
                cli->validBufEnd = cli->buf;
                cli->validBufStart = cli->buf;
            }
        }
        *moreDataFlag = false;
    
        if (getCliState(cli, CHUNKED_STATE))
        {
            ret = getChunkedData(cli, body, bodyLen, moreDataFlag);
        }
        else
        {
            if (cli->bodyLen)
            {
                if (cli->bodyLen < (bodyLen - buffereddBodyLen))
                {
                    bodyLen = cli->bodyLen;
                    ret = SlNetSock_recv(cli->ssock, body + buffereddBodyLen, bodyLen, 0);
                }
                else
                {
                    ret = SlNetSock_recv(cli->ssock, body + buffereddBodyLen, bodyLen - buffereddBodyLen, 0);
                }
                if (ret > 0)
                {
                    cli->bodyLen -= ret;
                    *moreDataFlag = cli->bodyLen ? true : false;
                }
            }
            /* Total bytes that were recieved and which were buffered during header parsing */
            ret += buffereddBodyLen;
        }
        return (ret);
    }
    

     

    我们没有更新的 CC3200文档。  

    您应该找到首选服务器,熟悉其用于检查存储库内容和检索下载 URL 的 API。

    拥有 URL 后,  您只需触发 HTTP GET 请求。

    现有的 OTA 代码可用作如何在设备上安装更新的参考(即,使用  或不使用 FLC lib 将收到的有效负载写入文件系统)。

    巴西,

    科比

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    供参考:Dropbox 开始回滚分块传输编码。 不确定它会持续多长时间。

    https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Dropbox-stopped-returning-Content-length-in-the-response-headers/td-p/575948

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您提供的信息!