Hi,
I've been trying to copy a file from outbound of FTP and copy to 'Public File Resources' in Adobe Campaign Classic. And I was able to copy the file using the following command.
var serverFileResourceLocation = "/usr/local/neolane/nl6/var/<instance_name>/<file_name.extension>";
if (!file.copyTo(serverFileResourceLocation))
logError ("File '" + file.name + "' was not copied");
else
logInfo('copied successfully');
The same was working in Sandbox instance. And in another instance that fails and gives the follwing error.
Error: "BAS-010015 Cannot open file '/usr/local/neolane/nl6/var/res/stage1/896058c047415b9ec73256866fa2e447.pdf' with write access (errno=2, No such file or directory)"
I've tried giving Read/Write/Delete permission to the operators for 'Public Resources folder' and still it didn't resolve the issue.
I've used the following forums for my references:
I want to Upload images to Public resources every morning. Is it possible to automate this process.
I've spent some days to resolve this and still no fruit. Any help will be much appreciated. Thanks in advance.
Solved! Go to Solution.
Hello somasundaramh14124455,
the thing is the sandbox is all in one and in production environment you would have multiple resource servers that can be installed on different physical servers across the network. So you need to publish those files either by using method PublishIfNeeded after you saved the file locally and to database or manually upload everything to each server respectively.
fileRes.PublishIfNeeded ();
PS:
Check JSAPI for fileRes
BR,
Marcel
I can see the paths are different in your code and error. "res" is missing.
Regards,
Deb
Views
Replies
Total Likes
Hi Debabrata.T,
Let me clear this. That 'res' stands for public file resources directory(I just got this info from some forum - so anyone can correct me if i'm wrong).
So even if I have 'res' that works in one instance and doesn't work in another instance. I tested the following and getting same result.
var serverFileResourceLocation = "/usr/local/neolane/nl6/var/res/<instance_name>/<file_name.extension>";
if (!file.copyTo(serverFileResourceLocation))
logError ("File '" + file.name + "' was not copied");
else
logInfo('copied successfully');
I see that I'm not able to copy a new file into that directory:
I'm unable to write my_file.pdf into 'res/my_instance_name' directory "/usr/local/neolane/nl6/var/res/my_instance_name/my_file.pdf".
Hope this helps to give me a solution.
Views
Replies
Total Likes
Hi ,
Yes "res" stands for public resources.
You can try to replace "/" with "//" in you code.
If it still doesn't help I hope it has something to do wit the path.
Regards,
Deb
Views
Replies
Total Likes
Debabrata.T, I tried to escape special characters using the following options. Still didn't help.
I wonder the issue is with write access.
Error: "BAS-010015 Cannot open file 'file_path' with write access (errno=2, No such file or directory)"
I confirmed the server path is: "/usr/local/neolane/nl6/var/res/stage1/" using querydef. So the issue is with the write access only I guess.
Hi somasundaramh14124455,
Please find the sample code where I am trying to cope a file and paste it with another name. It is working fine for me. Please double check the path and if it is correct you can reach out to Adobe support.
Code Snippet
var file = new File("/usr/local/neolane/nl6/var/res/instance_name/mypic.png");
if(!file.exists)
logError ("File '" + file.fullName + "' does not exists.");
else
logInfo("File '" + file.fullName + "' exists.");
if (!file.copyTo("/usr/local/neolane/nl6/var/res/instance_name/halloween.png"))
logError ("File '" + file.fullName + "' was not copied.");
else
logInfo("File '" + file.fullName + "' was copied.");
var copiedfile = new File("/usr/local/neolane/nl6/var/res/instance_name/halloween.png");
if(!copiedfile.exists)
logError ("File '" + copiedfile.fullName + "' does not exists.");
else
logInfo("File '" + copiedfile.fullName + "' exists.");
Log
File '/usr/local/neolane/nl6/var/res/instance_name/mypic.png' exists.
File '/usr/local/neolane/nl6/var/res/instance_name/mypic.png' was copied.
File '/usr/local/neolane/nl6/var/res/instance_name/halloween.png' exists.
Workflow finished
Regards,
Deb
I still get the same error. I can confirm the path using the querdef method which is described in fileRes dataschema. The following gives the path of a file which has the id/primary-key as 4216 in the file resource directory.
var query = xtk.queryDef.create(
{queryDef: {schema: "xtk:fileRes", operation: "get",
select: {
node: [{expr: "@fileName"}]
},
where: {
condition: {expr: "@id = 4216"}
}
}})
var fileRes = xtk.fileRes.create(query.ExecuteQuery())
logInfo(fileRes.fileName);
This is interesting. May be access issue.
Please can you help.
Regards,
Deb
Views
Replies
Total Likes
Looking for your feedback.
Also copying to (cc:) marcel.gent.86as you have provided solution for I want to Upload images to Public resources every morning. Is it possible to automate this process.
Hello somasundaramh14124455,
the thing is the sandbox is all in one and in production environment you would have multiple resource servers that can be installed on different physical servers across the network. So you need to publish those files either by using method PublishIfNeeded after you saved the file locally and to database or manually upload everything to each server respectively.
fileRes.PublishIfNeeded ();
PS:
Check JSAPI for fileRes
BR,
Marcel
Views
Likes
Replies