vida pricing precio politicas costos costo ciclo aws amazon-s3 coldfusion lucee

amazon-s3 - pricing - precio s3



Usando la versiĆ³n Leigh de S3Wrapper.cfc No se puede pasar Init (1)

Le daré un resumen de lo que hace el código:

getObjectLink devuelve una URL HTTP para el archivo fake.ping que se encuentra buscando en el depósito imgbkt.domain.com de la región s3-us-west-1 . Este enlace es temporal y expira después de 60 segundos de forma predeterminada.

getObject invoca getObjectLink e inmediatamente solicita la URL mediante HTTP GET. La respuesta se guarda en el directorio de S3v4.cfc con el nombre de archivo fake.ping de forma predeterminada. Finalmente, la función devuelve la ruta completa del archivo descargado: E:/wwwDevRoot/taa/fake.ping

Para guardar el archivo en una ubicación diferente, invocaría:

downloadPath = ''E:/'; test = s3.getObject(bucket,obj,region,downloadPath); writeDump(test);

La solicitud HTTP es sincrónica, lo que significa que el archivo se descargará por completo cuando las funciones devuelvan la ruta del archivo.

Si desea acceder al contenido real del archivo, puede hacer esto:

test = s3.getObject(bucket,obj,region); contentAsString = fileRead(test); // returns the file content as string // or contentAsBinary = fileReadBinary(test); // returns the content as binary (byte array) writeDump(contentAsString); writeDump(contentAsBinary);

(Es posible que desee transmitir el contenido si el archivo es grande, ya que fileRead / fileReadBinary lee todo el archivo en el búfer. Use fileOpen para transmitir el contenido.

¿Eso te ayuda?

Soy nuevo en S3 y necesito usarlo para el almacenamiento de imágenes. Encontré media docena de versiones de un s2wrapper para cf, pero parece que el único conjunto de para v4 es uno modificado por Leigh

https://gist.github.com/Leigh-/26993ed79c956c9309a9dfe40f1fce29

Se colocó en el directorio com y creó una página de "prueba" que contiene el siguiente código:

s3 = createObject(''component'',''com.S3Wrapper'').init(application.s3.AccessKeyId,application.s3.SecretAccessKey);

pero obtuve el siguiente error:

Así que cambié la línea 37 de

variables.Sv4Util = createObject(''component'', ''Sv4'').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);

a

variables.Sv4Util = createObject(''component'', ''Sv4Util'').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);

Ahora estoy obteniendo:

Tengo ganas de pasar por el código de Leigh y comenzar a cambiar las cosas, es una mala idea ya que he estado acechando aquí por año y sé que el código de Leigh es sólido.

¿Alguien sabe si hay algún ejemplo sobre cómo usar esto en cualquier lugar? Si no es lo que estoy haciendo mal. Si hace una diferencia, estoy usando Lucee 5 y no el motor CF de Adobe.

ACTUALIZAR:

Seguí las indicaciones de Leigh y el error ya no existe. He añadido un código más a mi página de prueba que ahora se ve así:

<cfscript> s3 = createObject(''component'',''com.S3v4'').init(application.s3.AccessKeyId,application.s3.SecretAccessKey); bucket = "imgbkt.domain.com"; obj = "fake.ping"; region = "s3-us-west-1" test = s3.getObject(bucket,obj,region); writeDump(test); test2 = s3.getObjectLink(bucket,obj,region); writeDump(test2); writeDump(s3); </cfscript>

Independientemente de lo que puse para el cubo, obj o región que obtengo:

JIC: fui a AWS y obtuve nuevas claves:

Leigh, si todavía está cerca o alguien, ¿cómo ha usado alguna de las sugerencias u orientaciones de uno de los s3Wrappers?

ACTUALIZACIÓN # 2: Incluso después de la ayuda de Alex, no puedo hacer que esto funcione. El enlace que recibo de getObjectLink no es válido y getObject nunca descarga un objeto. Pensé que probaría el método putObject

test3 = s3.putObject(bucketName=bucket,regionName=region,keyName="favicon.ico"); writeDump(test3);

para ver si hay información adicional, recibí esto:

Encontré este artículo https://shlomoswidler.com/2009/08/amazon-s3-gotcha-using-virtual-host.html pero es bastante viejo y dado que S3 sugiere específicamente el uso de puntos en nombres de pila, no es que sea así. es relevante por más tiempo Obviamente, hay algo que estoy haciendo mal pero he pasado horas tratando de resolverlo y parece que no puedo averiguar qué podría ser.