Saltar al contenido

Cómo convertir un objeto JSON a un base64 string?

Ya no tienes que indagar más por internet ya que has llegado al sitio correcto, tenemos la respuesta que buscas pero sin problema.

Solución:

La diferencia es clara si simplemente invierte la codificación base64 en ambos resultados.

(atob() decodifica base64, btoa() lo codifica)

El ejemplo de Amazon:

atob('eyAiZXhwaXJhdGlvbiI6ICIyMDEzLTA4LTA3VDEyOjAwOjAwLjAwMFoiLA0KICAiY29uZGl0aW9ucyI6IFsNCiAgICB7ImJ1Y2tldCI6ICJleGFtcGxlYnVja2V0In0sDQogICAgWyJzdGFydHMtd2l0aCIsICIka2V5IiwgInVzZXIvdXNlcjEvIl0sDQogICAgeyJhY2wiOiAicHVibGljLXJlYWQifSwNCiAgICB7InN1Y2Nlc3NfYWN0aW9uX3JlZGlyZWN0IjogImh0dHA6Ly9leGFtcGxlYnVja2V0LnMzLmFtYXpvbmF3cy5jb20vc3VjY2Vzc2Z1bF91cGxvYWQuaHRtbCJ9LA0KICAgIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJpbWFnZS8iXSwNCiAgICB7IngtYW16LW1ldGEtdXVpZCI6ICIxNDM2NTEyMzY1MTI3NCJ9LA0KICAgIFsic3RhcnRzLXdpdGgiLCAiJHgtYW16LW1ldGEtdGFnIiwgIiJdLA0KDQogICAgeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFJT1NGT0ROTjdFWEFNUExFLzIwMTMwODA2L3VzLWVhc3QtMS9zMy9hd3M0X3JlcXVlc3QifSwNCiAgICB7IngtYW16LWFsZ29yaXRobSI6ICJBV1M0LUhNQUMtU0hBMjU2In0sDQogICAgeyJ4LWFtei1kYXRlIjogIjIwMTMwODA2VDAwMDAwMFoiIH0NCiAgXQ0KfQ==')
" "expiration": "2013-08-07T12:00:00.000Z",
  "conditions": [
    "bucket": "examplebucket",
    ["starts-with", "$key", "user/user1/"],
    "acl": "public-read",
    "success_action_redirect": "http://examplebucket.s3.amazonaws.com/successful_upload.html",
    ["starts-with", "$Content-Type", "image/"],
    "x-amz-meta-uuid": "14365123651274",
    ["starts-with", "$x-amz-meta-tag", ""],

    "x-amz-credential": "AKIAIOSFODNN7EXAMPLE/20130806/us-east-1/s3/aws4_request",
    "x-amz-algorithm": "AWS4-HMAC-SHA256",
    "x-amz-date": "20130806T000000Z" 
  ]
"

Tu resultado:

atob('eyJleHBpcmF0aW9uIjoiMjAxMy0wOC0wNlQxMjowMDowMC4wMDBaIiwiY29uZGl0aW9ucyI6W3siYnVja2V0IjoiZXhhbXBsZWJ1Y2tldCJ9LFsic3RhcnRzLXdpdGgiLCIka2V5IiwidXNlci91c2VyMS8iXSx7ImFjbCI6InB1YmxpYy1yZWFkIn0seyJzdWNjZXNzX2FjdGlvbl9yZWRpcmVjdCI6Imh0dHA6Ly9hY2w2LnMzLmFtYXpvbmF3cy5jb20vc3VjY2Vzc2Z1bF91cGxvYWQuaHRtbCJ9LFsic3RhcnRzLXdpdGgiLCIkQ29udGVudC1UeXBlIiwiaW1hZ2UvIl0seyJ4LWFtei1tZXRhLXV1aWQiOiIxNDM2NTEyMzY1MTI3NCJ9LFsic3RhcnRzLXdpdGgiLCIkeC1hbXotbWV0YS10YWciLCIiXSx7IngtYW16LWNyZWRlbnRpYWwiOiJBS0lBSU9TRk9ETk43RVhBTVBMRS8yMDEzMDgwNi91cy1lYXN0LTEvczMvYXdzNF9yZXF1ZXN0In0seyJ4LWFtei1hbGdvcml0aG0iOiJBV1M0LUhNQUMtU0hBMjU2In0seyJ4LWFtei1kYXRlIjoiMjAxMzA4MDZUMDAwMDAwWiJ9XX0=')
""expiration":"2013-08-06T12:00:00.000Z","conditions":["bucket":"examplebucket",["starts-with","$key","user/user1/"],"acl":"public-read","success_action_redirect":"http://acl6.s3.amazonaws.com/successful_upload.html",["starts-with","$Content-Type","image/"],"x-amz-meta-uuid":"14365123651274",["starts-with","$x-amz-meta-tag",""],"x-amz-credential":"AKIAIOSFODNN7EXAMPLE/20130806/us-east-1/s3/aws4_request","x-amz-algorithm":"AWS4-HMAC-SHA256","x-amz-date":"20130806T000000Z"]"

Por lo que puedo decir, es porque JSON.stringify elimina los espacios en blanco mientras que el método de Amazon los conserva. Si quisiera, podría usar JSON.stringify con algunas opciones adicionales para “imprimir bastante” la salida. Pero lo más probable es que no importe en absoluto, siempre que el codificado en base64 string decodifica a JSON válido, dudo que a S3 le importe si tiene espacios en blanco o no. No me preocuparía el hecho de que no puedes replicar el ejemplo de Amazon exactamente.

Aquí puedes ver las comentarios y valoraciones de los usuarios

Al final de la artículo puedes encontrar las referencias de otros administradores, tú todavía puedes insertar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *