<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/116974/download-client-redirect-querry</link><description>Hi, 
 
 I am using download_client to get a bigger file (100KB) to my memory via LTE-M. The Files are located in a bucket and I use a shortURL to get the signedDownload URL. If I use this short URL in Download Client I get the Error &amp;quot;http/1.1 301 moved</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 19 Dec 2024 14:06:14 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/116974/download-client-redirect-querry" /><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/515762?ContentTypeID=1</link><pubDate>Thu, 19 Dec 2024 14:06:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:861007b0-d272-4b93-acf1-608a2d98fc64</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user="danielboe"]I solved the Redirect now manually via socket.[/quote]
&lt;p&gt;This is great to hear. Thank you for the update.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/515596?ContentTypeID=1</link><pubDate>Wed, 18 Dec 2024 20:12:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3dd0e300-f47d-4868-a227-f104e1789b41</guid><dc:creator>danielboe</dc:creator><description>&lt;p&gt;I solved the Redirect now manually via socket. I read the complete http response and get my URL. If anybody else ever needs this here is my function:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;lt;zephyr/net/socket.h&amp;gt;

char *redirectHttp(const char *endpoint, const char *path) {
    int fd = 0;
    int err = 0;
    int bytes;
    char send_packet[200];
    char recv_buf[1024] = {};
    struct addrinfo *res;
    struct addrinfo hints = {
        .ai_family = AF_INET,
        .ai_socktype = SOCK_STREAM,
    };

    err = getaddrinfo(endpoint, &amp;quot;80&amp;quot;, &amp;amp;hints, &amp;amp;res);
    if (err) {
        LOG_ERR(&amp;quot;[SOCKET] getaddrinfo err %d&amp;quot;, errno);
        return 0;
    }
    ((struct sockaddr_in *)res-&amp;gt;ai_addr)-&amp;gt;sin_port = htons(80);

    fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);  // Set socket to tcp without tls
    if (fd == -1) {
        LOG_ERR(&amp;quot;[SOCKET] failed to open&amp;quot;);
        return 0;
    }
    char ipv4_addr[NET_IPV4_ADDR_LEN];
    inet_ntop(AF_INET, &amp;amp;((struct sockaddr_in *)res-&amp;gt;ai_addr)-&amp;gt;sin_port, ipv4_addr, sizeof(ipv4_addr));
    LOG_INF(&amp;quot;[SOCKET] Connect to Addr IP: %s&amp;quot;, ipv4_addr);
    err = connect(fd, res-&amp;gt;ai_addr, sizeof(struct sockaddr_in));
    if (err) {
        LOG_ERR(&amp;quot;[SOCKET] connect() err: %d&amp;quot;, errno);
        return 0;
    }

    sprintf(send_packet,
            &amp;quot;GET %s HTTP/1.1\r\n&amp;quot;
            &amp;quot;Host: %s\r\n&amp;quot;
            &amp;quot;Accept: txt/plain\r\n\r\n&amp;quot;,
            path, endpoint);
    bytes = send(fd, &amp;amp;send_packet, strlen(send_packet), 0);
    LOG_INF(&amp;quot;[SOCKET] Sent %d bytes&amp;quot;, bytes);
    bytes = blocking_recv(fd, recv_buf, sizeof(recv_buf), 0);
    LOG_INF(&amp;quot;[SOCKET] Received %d bytes&amp;quot;, bytes);

    const char *location_header = &amp;quot;Location: &amp;quot;;
    const char *start = strstr(recv_buf, location_header);
    if (start) {
        start += strlen(location_header);

        const char *end = strstr(start, &amp;quot;\r\n&amp;quot;);
        if (!end) {
            end = start + strlen(start);  // End of string if no CRLF
        }

        size_t length = end - start;

        if (length &amp;lt; 1024) {
            char *url = (char *)malloc(length + 1);  // Allocate memory for the URL
            strncpy(url, start, length);
            url[length] = &amp;#39;\0&amp;#39;;  // Null-terminate the string
            return url;
        } else {
            LOG_ERR(&amp;quot;[SOCKET] URL is too long to fit in the buffer&amp;quot;);
            return 0;
        }
    } else {
        LOG_ERR(&amp;quot;[SOCKET] Location header not found in the response&amp;quot;);
    }

    return 0;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Example Usage:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;const char *endpoint = &amp;quot;ul1.epaperframe.de&amp;quot;;
const char *path = &amp;quot;/tjoLta9.dl&amp;quot;;
char *url = redirectHttp(endpoint, path);
printf(&amp;quot;Redirected URL: %s\n&amp;quot;, url);
free(url);  // Free the allocated memory&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This ticket is solved for me now.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/514936?ContentTypeID=1</link><pubDate>Fri, 13 Dec 2024 15:47:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:730f3fdb-b81f-4f3d-ae74-078f2e2e38df</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;This is one option and decision is yours. It might be the easiest since there is support for HTTP transport in this new downloader library.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/514758?ContentTypeID=1</link><pubDate>Thu, 12 Dec 2024 13:47:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:02736172-bbc7-43ca-b5d1-2eb20f12ec46</guid><dc:creator>danielboe</dc:creator><description>&lt;p&gt;So do you think waiting for this merged is the best option?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/514724?ContentTypeID=1</link><pubDate>Thu, 12 Dec 2024 12:16:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78171b25-897f-4620-aed7-5665e11218c2</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;There is an update to my previous reply. Support for HTTP transport is now added in the downloader library. Please have a look at this&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-nrf/pull/17481"&gt;pull request&lt;/a&gt;&amp;nbsp;which&amp;nbsp;should also show how to read headers from request.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/514712?ContentTypeID=1</link><pubDate>Thu, 12 Dec 2024 11:34:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:16b13c0d-3a45-4fa1-ab97-9b4a2782c91d</guid><dc:creator>danielboe</dc:creator><description>&lt;p&gt;This sounds like what I want. Is there any sample to read headers from a request?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/514676?ContentTypeID=1</link><pubDate>Thu, 12 Dec 2024 09:52:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2701c834-832f-4e1b-869d-97a4a3b289af</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;Unfortunately, there is no support for URL shorteners in download client library. Resolving short URL before calling download client library with expanded URL is currently the solution. In your case, you could consider&amp;nbsp;&lt;span&gt;doing an HTTP HEAD request using the Zephyr HTTP library, then read out the Location&lt;/span&gt;&lt;span&gt;&amp;nbsp;header with the expanded URL and use that subsequently with the download client. It is also recommended that you use HTTPS instead of HTTP due to security concern.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/514581?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2024 16:00:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ff126150-b705-469f-a38f-9f0e6e0f40ee</guid><dc:creator>danielboe</dc:creator><description>&lt;p&gt;NCS 2.7.0, Firmware is 2.0.1 (nrf9151)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/514570?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2024 15:18:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71069b11-8ec5-41be-8656-c0023cfe5abe</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user="dejans"]Which NCS version do you use?&lt;br /&gt;[/quote]
&lt;p&gt;Which NCS version and modem firmware version do you use?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/513850?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2024 14:20:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1dfd29f3-0f0e-40e8-84e7-218c5e9e381b</guid><dc:creator>danielboe</dc:creator><description>&lt;p&gt;exactly, this was my starting point. also downloading the sample works in my code. the config itself can indeed work. here is the full config I use:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_REBOOT=y
CONFIG_CRC=y

# GPIO
CONFIG_GPIO=y
CONFIG_PWM=y

#RTT Log
CONFIG_LOG=y
CONFIG_LOG_MODE_MINIMAL=y
CONFIG_UART_CONSOLE=n
CONFIG_RTT_CONSOLE=y
CONFIG_LOG_BACKEND_UART=n
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_DEFAULT_LEVEL=3

# Heap and stacks
CONFIG_HEAP_MEM_POOL_SIZE=8096
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048


#WDT
CONFIG_WDT_LOG_LEVEL_DBG=y
CONFIG_WATCHDOG=y
CONFIG_WDT_DISABLE_AT_BOOT=n

# SPI
CONFIG_SPI=y

# LTE link control
CONFIG_LTE_LINK_CONTROL=y
CONFIG_LTE_NETWORK_MODE_NBIOT=y
CONFIG_MODEM_INFO=y
CONFIG_MODEM_KEY_MGMT=y

#Networking
CONFIG_NET_SOCKETS=y
CONFIG_NETWORKING=y
CONFIG_NET_NATIVE=n #TODO check this one
CONFIG_NRF_MODEM_LIB=y

# Date Time library
CONFIG_DATE_TIME=y
CONFIG_DATE_TIME_MODEM=y

# cJSON
CONFIG_CJSON_LIB=y

# Image manager
CONFIG_FLASH_MAP=y
CONFIG_STREAM_FLASH=y
CONFIG_MCUBOOT_IMG_MANAGER=y
CONFIG_IMG_MANAGER=y

#OTA
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_IMG_ERASE_PROGRESSIVELY=y
CONFIG_BOOTLOADER_MCUBOOT=y

# AWS FOTA
CONFIG_AWS_FOTA=y
CONFIG_FOTA_DOWNLOAD=y
CONFIG_FOTA_SOCKET_RETRIES=200
CONFIG_FOTA_DOWNLOAD_PROGRESS_EVT=y
CONFIG_DFU_TARGET=y

# Download Client
CONFIG_DOWNLOAD_CLIENT=y
CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
CONFIG_DOWNLOAD_CLIENT_LOG_LEVEL_DBG=y

#AWS IOT Settings
CONFIG_AWS_IOT=y
CONFIG_AWS_IOT_BROKER_HOST_NAME=&amp;quot;XXX-ats.iot.eu-central-1.amazonaws.com&amp;quot;
CONFIG_MQTT_HELPER_SEC_TAG=6
CONFIG_AWS_IOT_TOPIC_UPDATE_DELTA_SUBSCRIBE=y
CONFIG_AWS_IOT_AUTO_DEVICE_SHADOW_REQUEST=n
CONFIG_MQTT_CLEAN_SESSION=y
CONFIG_MQTT_KEEPALIVE=200

# Non-volatile Storage
CONFIG_NVS=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_PM_PARTITION_SIZE_NVS_STORAGE=0xE000
CONFIG_LZ4=y&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/513704?ContentTypeID=1</link><pubDate>Thu, 05 Dec 2024 18:00:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2cf50146-df82-4972-8b58-7b9723b47592</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;Can you show your full project configuration?&lt;br /&gt;&lt;br /&gt;Do you use this&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.4.4/page/nrf/samples/nrf9160/download/README.html"&gt;Download Client&lt;/a&gt;&amp;nbsp;sample? &lt;br /&gt;&lt;br /&gt;Which NCS version do you use?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/513479?ContentTypeID=1</link><pubDate>Wed, 04 Dec 2024 15:19:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f8462ed-00c7-4253-a166-280c92a43c4f</guid><dc:creator>danielboe</dc:creator><description>&lt;p&gt;The ShortUrl is generated on a Serverside and send to the device. I can give you some snippet that shows how it works.&lt;/p&gt;
&lt;p&gt;prj.conf:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;# Download Client
CONFIG_DOWNLOAD_CLIENT=y
CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
CONFIG_DOWNLOAD_CLIENT_LOG_LEVEL_DBG=y&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;there is Downloader:&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define URL &amp;quot;http://ul1.epaperframe.de/NDUmX2z.dl&amp;quot;
static struct download_client downloader;
static struct download_client_cfg config = {};      
      
        if (awsGetCloudConnected() &amp;amp;&amp;amp; !doOnce) {
            doOnce = true;
            LOG_INF(&amp;quot;[MAIN] DL INIT&amp;quot;);
            int err = download_client_init(&amp;amp;downloader, callbackDl);
            if (err) {
                printk(&amp;quot;[MAIN] Failed to initialize the client, err %d&amp;quot;, err);
            }

            err = download_client_get(&amp;amp;downloader, URL, &amp;amp;config, URL, 0);
            if (err) {
                printk(&amp;quot;[MAIN] Failed to start the downloader, err %d&amp;quot;, err);
                return 0;
            }

            printk(&amp;quot;[MAIN] Downloading %s\n&amp;quot;, URL);
        }

        if (dlClientDone) {
            dlClientDone = false;
            char recoverDataStr[2050] = {};
            strncpy(recoverDataStr, downloader.buf, sizeof(recoverDataStr));
            printk(&amp;quot;[DL] Payload: \&amp;quot;%s\&amp;quot;\n&amp;quot;, recoverDataStr);
        }&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And there is the callback:&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static int callbackDl(const struct download_client_evt *event) {
    static size_t downloaded;
    static size_t file_size;

    if (downloaded == 0) {
        download_client_file_size_get(&amp;amp;downloader, &amp;amp;file_size);
        downloaded += 0;
    }

    switch (event-&amp;gt;id) {
        case DOWNLOAD_CLIENT_EVT_FRAGMENT:
            downloaded += event-&amp;gt;fragment.len;
            if (file_size) {
                progress_print(downloaded, file_size);
                char recoverDataStr[2200] = {};
                strncpy(recoverDataStr, event-&amp;gt;fragment.buf, event-&amp;gt;fragment.len);
                printk(&amp;quot;%s \n&amp;quot;, recoverDataStr);
            } else {
                printk(&amp;quot;\r[ %d bytes ] &amp;quot;, downloaded);
            }
            return 0;
        case DOWNLOAD_CLIENT_EVT_CLOSED:
            printk(&amp;quot;[DL] CLOSED\n&amp;quot;);
            dlClientDone = true;
            return 0;
        case DOWNLOAD_CLIENT_EVT_DONE:
            printk(&amp;quot;[DL] DONE\n&amp;quot;);
            return 0;
        case DOWNLOAD_CLIENT_EVT_ERROR:
            printk(&amp;quot;[DL] Error %d during download\n&amp;quot;, event-&amp;gt;error);
            return -1;
    }
    return 0;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am not sure what you mean by more log, but here is a sample output with LOG DEBUG (DOWNLOAD_CLIENT_LOG_LEVEL_DBG):&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;00&amp;gt; *** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
00&amp;gt; *** Using Zephyr OS v3.6.99-100befc70c74 ***
00&amp;gt; I: [MAIN] Starting application 2.0.1
00&amp;gt; I: 16 Sectors of 4096 bytes
00&amp;gt; I: alloc wra: 2, fc0
00&amp;gt; I: data wra: 2, a20
00&amp;gt; I: [LED] led sample
00&amp;gt; I: [SPI] init
00&amp;gt; I: [DISPLAY] sleep start
00&amp;gt; I: [DISPLAY] WAIT finished
00&amp;gt; I: [DISPLAY] sleep done
00&amp;gt; I: [MAIN] Chip is NEW - set LTE-M
00&amp;gt; I: [MODEM] Modem Band Lock Set
00&amp;gt; I: [MODEM] Version: 2.0.1
00&amp;gt; I: [MODEM] Network registration status: Connected - roaming
00&amp;gt; I: [MODEM] PSM parameter update: TAU: 3240, Active time: -1
00&amp;gt; I: [MODEM] client_id: nrf-35940*
00&amp;gt; I: [AWS] iot_connect - init done
00&amp;gt; W: [AWS] iot_reconnect - wait 30 s connect try: 1/30
00&amp;gt; W: [AWS] IOT_EVT_CONNECTED
00&amp;gt; I: [MODEM] BOOT Image Confirmed
00&amp;gt; I: [MAIN] DL INIT
00&amp;gt; D: state = 1
00&amp;gt; I: Downloading: http://ul1.epaperframe.de/NDUmX2z.dl [0]
00&amp;gt; [MAIN] Downloading http://ul1.epaperframe.de/NDUmX2z.dl
00&amp;gt; D: Port not specified, using default: 80
00&amp;gt; D: Failed to resolve hostname ul1.epaperframe.de on IPv6
00&amp;gt; D: family: 1, type: 1, proto: 6
00&amp;gt; I: Connecting to 3.5.134.246
00&amp;gt; D: fd 1, addrlen 8, fam IPv4, port 80
00&amp;gt; D: state = 2
00&amp;gt; D: Receiving up to 2048 bytes at 0x2000cbd8...
00&amp;gt; D: Read 620 bytes from socket
00&amp;gt; D: GET header size: 620
00&amp;gt; E: Unexpected HTTP response: 301 moved permanently
00&amp;gt; [DL] Error -77 during download
00&amp;gt; D: state = 4
00&amp;gt; D: state = 0
00&amp;gt; [DL] CLOSED
00&amp;gt; D: Connection closed
00&amp;gt; [DL] Payload: &amp;quot;http/1.1 301 moved permanently&amp;quot;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The links are save to stay public But they wont work anymore after some time&lt;/p&gt;
&lt;p&gt;The Download Client Sample worked fine btw. so thats not the issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Download Client Redirect Querry</title><link>https://devzone.nordicsemi.com/thread/513434?ContentTypeID=1</link><pubDate>Wed, 04 Dec 2024 13:13:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:19be33cf-96d1-4773-b20d-581a88c29d90</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi Daniel,&lt;/p&gt;
[quote user=""]The Files are located in a bucket and I use a shortURL to get the signedDownload URL.[/quote]
&lt;p&gt;Can you show how (and where in code) you use this shortURL?&lt;/p&gt;
[quote user=""]If I use this short URL in Download Client I get the Error &amp;quot;http/1.1 301 moved permanently&amp;quot;[/quote]
&lt;p&gt;Can you provide full log which contains the error?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>