Cómo especificar el rango de contenido válido en encabezado para solicitar: Método-Put

Estoy haciendo un REQUEST para subir un archivo doc, con método: PUT con el siguiente configuración:

     #Upload file (Testfile.doc) size is 11kb.
     with open(Testfile.doc, "rb") as f:
         Test_file=f.read()
     url = organization_url+attachment_ID+apiversion # when i hit this url in browser, i see the attachment doc file to get download.
     Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11100/*"}
     Initiate_Request = requests.put(url=url,header=Header,data=Test_file,auth=('',PAT))
     print("Attachment_details:-",Initiate_Request.text) ## {"count":1,"value":{"Message":"Content-Range specified in the attachment upload request is not valid."}}
     print("Attachment_details_Status_Code:-",Initiate_Request.status_code)  ## 

Cualquier sugerencia sobre cómo especificar el rango de contenido válido para la solicitud anterior.

Pregunta hecha hace 3 años, 4 meses, 29 días - Por quantumcoder403a


3 Respuestas:

  • Esto resolvió mi propósito:

    {"Content-Type":"application/octet-stream","Content-Length":"11100","Content-Range":"bytes 0-11099/11100"}
    

    Respondida el Dec 18, 2020 a las 11:30 - por codemaestro

    Votos positivos: 0 | Votos negativos: 0

  • En la configuración de tu header para la solicitud PUT, estás especificando el rango de contenido de la siguiente manera:

    python
    Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11100/*"}
    

    Sin embargo, el error que estás recibiendo indica que el rango de contenido especificado no es válido. Para corregir esto, asegúrate de que el rango de contenido que estás especificando sea correcto y esté dentro del tamaño real del archivo que estás enviando.

    Por ejemplo, si el archivo Testfile.doc tiene un tamaño de 11kb, el rango de contenido debe ir desde 0 hasta el tamaño real del archivo menos 1 (ya que la numeración de bytes comienza desde 0). Por lo tanto, el rango correcto de contenido en este caso sería "bytes 0-11099/11000".

    Por lo tanto, puedes corregir tu header de la siguiente manera:

    python
    Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11099/11000"}
    

    Con esta corrección, estás especificando un rango de contenido válido para el archivo que estás subiendo con tu solicitud PUT. Espero que esta información te sea útil para resolver el problema.

    Respondida el Dec 19, 2020 a las 11:28 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para especificar el rango de contenido válido en el encabezado de solicitud para el método PUT, debes utilizar el encabezado Content-Range. El formato del encabezado Content-Range es:

    
    Content-Range: bytes -/
    

    donde:

    <start> es el índice del primer byte del rango. <end> es el índice del último byte del rango.

    • `` es el tamaño total del recurso.

    En tu caso, el archivo tiene 11 kb de tamaño, por lo que el rango de contenido válido sería de 0 a 11099. Por lo tanto, el encabezado Content-Range correcto sería:

    
    Content-Range: bytes 0-11099/11100
    

    Asegúrate de que el rango especificado en el encabezado Content-Range coincida con el tamaño del archivo que estás subiendo. También debes asegurarte de que el servidor admite el uso del encabezado Content-Range.

    Aquí tienes el código corregido:

    ```python Upload file (Testfile.doc) size is 11kb. with open(Testfile.doc, "rb") as f: Testfile=f.read() url = organizationurl+attachmentID+apiversion

    when i hit this url in browser, i see the attachment doc file to get download.

    Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11099/11100"} InitiateRequest = requests.put(url=url,header=Header,data=Testfile,auth=('',PAT)) print("Attachmentdetails:-",InitiateRequest.text)

    {"count":1,"value":{"Message":"Content-Range specified in the attachment upload request is not valid."}}

    print("Attachment
    detailsStatusCode:-",InitiateRequest.statuscode)

    Respondida el Dec 19, 2020 a las 11:38 - por Gemini

    Votos positivos: 0 | Votos negativos: 0