From 0f15aa3c52ad837a7b39cdd3f9fb4140ee04ed73 Mon Sep 17 00:00:00 2001 From: michaeloffner Date: Wed, 1 Nov 2023 18:27:28 +0100 Subject: [PATCH] allow to define a target path as a string and add a test case for it --- build.number | 4 ++-- .../resource/s3/function/S3Write.java | 15 +++++++++----- tests/functions/S3Download.cfc | 20 +++++++++++++++++-- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/build.number b/build.number index 695c088..d02e280 100644 --- a/build.number +++ b/build.number @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Oct 31 20:27:20 CET 2023 -build.number=5 +#Wed Nov 01 18:24:40 CET 2023 +build.number=6 diff --git a/source/java/src/org/lucee/extension/resource/s3/function/S3Write.java b/source/java/src/org/lucee/extension/resource/s3/function/S3Write.java index 6c6ada3..b928388 100644 --- a/source/java/src/org/lucee/extension/resource/s3/function/S3Write.java +++ b/source/java/src/org/lucee/extension/resource/s3/function/S3Write.java @@ -76,13 +76,18 @@ public static Object toResource(PageContext pc, Object value) { public static Resource toResource(PageContext pc, Object value, boolean needToExist, Resource defaultValue) { if (value instanceof CharSequence) { String str = value.toString(); - if (str.length() <= 10240 && needToExist) { - try { - return CFMLEngineFactory.getInstance().getResourceUtil().toResourceExisting(pc, str); - } - catch (Exception e) { + if (needToExist) { + if (str.length() <= 10240) { + + try { + return CFMLEngineFactory.getInstance().getResourceUtil().toResourceExisting(pc, str); + } + catch (Exception e) { + } + } } + else return CFMLEngineFactory.getInstance().getCastUtil().toResource(str, defaultValue); } else if (value instanceof Resource) return (Resource) value; else if (value instanceof File) return CFMLEngineFactory.getInstance().getCastUtil().toResource(value, defaultValue); diff --git a/tests/functions/S3Download.cfc b/tests/functions/S3Download.cfc index 416d6f9..ee7a918 100644 --- a/tests/functions/S3Download.cfc +++ b/tests/functions/S3Download.cfc @@ -29,8 +29,9 @@ Sorglos"; assertEquals(len(data),12); assertEquals(data, content); }); - - it(title="download to file", body = function( currentSpec ) { + +//////// FILE /////////// + it(title="download to file (fileOpen)", body = function( currentSpec ) { var target=getDirectoryFromPath(getCurrentTemplatePath())&"temp.txt"; try { s3Download(bucket:bucketName,object:objectName,target:fileOpen(target,"write"),accessKeyId:cred.ACCESS_KEY_ID,secretAccessKey:cred.SECRET_KEY); @@ -44,6 +45,21 @@ Sorglos"; } }); + + it(title="download to file (string path)", body = function( currentSpec ) { + var target=getDirectoryFromPath(getCurrentTemplatePath())&"temp.txt"; + try { + s3Download(bucket:bucketName,object:objectName,target:target,accessKeyId:cred.ACCESS_KEY_ID,secretAccessKey:cred.SECRET_KEY); + var data=fileRead(target); + assertTrue(isSimpleValue(data)); + assertEquals(len(data),12); + assertEquals(data, content); + } + finally { + if(fileExists(target)) fileDelete(target); + } + }); + //////// UDF /////////// it(title="download to UDF:line", body = function( currentSpec ) { var data="";