• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers

webaccesslib: No longer available in version 11 or higher?

Contributor ,
Jan 17, 2021 Jan 17, 2021

Copy link to clipboard

Copied

Am I correct in thinking that the webaccesslib is no longer available starting in version 11? The .dll file is not included in the Bridge folder as in previous versions (up to version 10). When I copy it to the correct folder I get an IO error. I'm gussing that Bridge no longer supports 32bit dll files as ExternalObject loadable libraries. Is this correct?

 

Is there an alternative to this to support ftp/sftp via javascripting?

TOPICS
Problem or error , Scripting

Views

558

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
People's Champ ,
Jan 17, 2021 Jan 17, 2021

Copy link to clipboard

Copied

Its gone.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jan 18, 2021 Jan 18, 2021

Copy link to clipboard

Copied

Why so useful thing was removed?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 18, 2021 Jan 18, 2021

Copy link to clipboard

Copied

You can call cURL via the command line, I had a Powershell script at one point that called the Windows command line to upload files via cURL. It was a major PITA but it worked. My Utility Script Pack for Bridge uses a similar method to call the Adobe DNG Converter via Powershell so on Windows, you don't see the command window. You can also call Powershell or Automator (on macOS) to use the built-in OS web access features.

Adobe Scripts

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jan 18, 2021 Jan 18, 2021

Copy link to clipboard

Copied

With webaccesslib you could dowanload files from server (what is possible in Photoshop without it), but you could also save file to server (that wasn't possible by only Photoshop with new Socket()). Can be that second done with cURL or Powershell without user beeing asked by Windows dialog to accept such task?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 20, 2021 Jan 20, 2021

Copy link to clipboard

Copied

Yes, anything that can be called from the command line will work. The only way i know of to avoid the command window showing is to use Windows Scripting Host and Powershell to run a command line script. Be advised, its a major PITA to get the syntax correct.

Here is a sample powershell script to call cURL

 

#Notes: File paths and directories should be edited to suit. Script will fail around 1400 files in a folder, keep it under that.
#If a different ftp account is needed, add a new item to the array with login:pass
#--ssl -k not needed for regular ftp account

#edit these variables
$curlpath = "~\Downloads\curl\bin\curl.exe"
$MasterDir = "~\Pictures\Product Images\"
$ftpDir = "ftp://ftp.server.com/"
#subdirectories, logins, file types - (local folder, remote folder, file extension, file type)
$DirArray = ("catalogs", "catalogs/", ".pdf", "PDF"), ("1000px", "product_photos/1000_pixel/", ".jpg", "JPEG"),`
("1600px", "product_photos/1600_pixel/", ".jpg", "JPEG")
$ArrayCounter = 0
#add item to array for account with different password
$pass = "name:pass"

#finished_photos spreadsheet
$ftp = $ftpDir+"dir/"
$filelist = "finished_photos.xlsx"
$filelist2 = "finished_photos-ftp.xlsx"
cd ~\Desktop\
Start-Process -FilePath $curlpath -ArgumentList "-T $filelist $ftp -u $pass --ssl -k"
Start-Process -FilePath $curlpath -ArgumentList "-T $filelist2 $ftp -u $pass --ssl -k"

#repeat until end of DirArray
while ($ArrayCounter -lt $DirArray.length)
{
#get parameters for next directory
$Dir = $MasterDir+$DirArray[$ArrayCounter][0]
$RemoteDir = $DirArray[$ArrayCounter][1]
$searchext = $DirArray[$ArrayCounter][2]
$filetype = $DirArray[$ArrayCounter][3]
#if needed for different account
#$pass = $DirArray[$ArrayCounter][4]

#get file listing filtered by $searchext and convert to globbed input for curl
$filelist = dir $Dir ("*"+$searchext)
$filelist = $filelist -replace($searchext,',') -replace ($filetype,"")
$filelist = "{"+$filelist+"}"
$filelist = $filelist -replace(',}',('}'+$searchext)) -replace (' ','')

#launch curl if list is not empty, upload from local directory
if ($filelist -ne "{}")
{
#specify ftp server directory
$ftp = $ftpDir+$RemoteDir
#change local directory
cd $Dir
Start-Process -FilePath $curlpath -ArgumentList "-T $filelist $ftp -u $pass --ssl -k"
}
$ArrayCounter = $ArrayCounter+1
}

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Jan 29, 2021 Jan 29, 2021

Copy link to clipboard

Copied

Yes, support for Webaccesslib is removed in the latest versions of Bridge as it was not being used in any Bridge User workflow. We would request you to use other libraries (like libCurl, OpenSSL which provide similar functionality) available out there, which are better supported with regular vulnerability fixes.

Thanks,
Bridge Team

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 01, 2021 Feb 01, 2021

Copy link to clipboard

Copied

It would be awfully nice if the developer team wrote a connector to things like cURL and ImageMagik and Lightroom so us amateur coders could more easily extend Bridge. Just saying.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 04, 2021 May 04, 2021

Copy link to clipboard

Copied

Agreed. I am lost on how to use libCurl or openSSL with a Bridge script.

 

And to the Bridge Team: I wasn't just playing around with Webaccesslib, I now have users who are angry that my script is broken.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 05, 2021 May 05, 2021

Copy link to clipboard

Copied

cURL is accesible via command line and Bridge scripting. However, its a PITA. I have cobbled together a way to use Windows Scripting Host and Powershell on Windows to run command line scripts without showing the command window. This is sample code, use at your own risk.

 

/*
Utility Pack Scripts created by David M. Converse ©2018-21

This script is a sample include file for scripters that contains a
template function to run command line actions in Windows
without the command line window showing. This function takes
either a native Powershell function or command prompt code,
writes it into a vbs file, and executes the vbs file to launch Powershell.

Syntax is critical, note all of the escaped characters!

Last modified 10/8/2020

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

APACHE LICENSE, VERSION 2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

/*
PS Example to create a zip file:
(requires Powershell 5 or later)

//list of files to compress
var inputName = '\'C:\\Users\\test\\Desktop\\foo.txt\', \'C:\\Users\\test\\Desktop\\bar.txt\'';
//name of zip archive
var archName = '\'C:\\Users\\test\\Desktop\\archive.zip\'';
//assembled command
var psParam = 'Compress-Archive -LiteralPath '+ inputName +' -DestinationPath ' + archName;
//send command to function
psCommand(psParam);

*/

/*
Command Example to call the DNG Converter and convert files to DNG:
(requires Adobe DNG Converter in default install path)

//path to DNG Converter
var appPath = '\'C:\\Program Files\\Adobe\\Adobe DNG Converter\\Adobe DNG Converter.exe\'';
//command line arguments
var args = '-c -p1';
//files to process, note escaped quotes
var filePaths = ' \""C:\\Users\\test\\Desktop\\img001.CR2\"" \""C:\\Users\\test\\Desktop\\img002.CR2\""';
//assembled command
var psParam = 'Start-Process -FilePath '+ appPath + ' -ArgumentList \'' + args + filePaths;
//send command to function
psCommand(psParam);

*/

//pass the command
psCommand = function(psParam){
try{
//PS command encapsulated in vbs
var commandStr = 'CreateObject("Wscript.Shell").Run "powershell -NoLogo -NoProfile -Command ' + psParam + '\'", 0, True';
//create temp vbs file in ~\AppData\Local\Temp\
//use forward slash for Extendscript paths
var vbsTempFile = new File(Folder.temp + '/vbstemp.vbs');
//open for write
vbsTempFile.open ('w');
//write command to vbs file
vbsTempFile.write(commandStr);
//close file
vbsTempFile.close();
//execute vbs file
File(vbsTempFile).execute();
//adjust time as required before vbs file is deleted
$.sleep(1500);
//delete vbs file
File(vbsTempFile).remove();
}
catch(e){
//alert on error
alert(e + ' ' + e.line);
}
}

 

---------------------------------------------------------------------------------------

#Sample Powershell script to upload files to ftp using curl

#Notes: File paths and directories should be edited to suit. Script will fail around 1400 files in a folder, keep it under that.
#If a different ftp account is needed, add a new item to the array with login:pass
#--ssl -k used for ftps account

#edit these variables
$curlpath = "~\curl\bin\curl.exe"
$MasterDir = "~\Pictures\"
$ftpDir = "ftps://ftp.sample.com/"
#subdirectories, logins, file types - (local folder, remote folder, file extension, file type)
$DirArray = ("PDF", "pdf/", ".pdf", "PDF"), ("Small JPEG", "JPEG/1000px/", ".jpg", "JPEG"),`
("Large JPEG", "JPEG/1600px/", ".jpg", "JPEG")
$ArrayCounter = 0
#add item to array for account with different password
$pass = "user:password"

#spreadsheet
$ftp = $ftpDir+"Excel/"
$filelist = "sample.xlsx"
cd ~\Desktop\
Start-Process -FilePath $curlpath -ArgumentList "-T $filelist $ftp -u $pass --ssl -k"

#repeat until end of DirArray
while ($ArrayCounter -lt $DirArray.length)
{
#get parameters for next directory
$Dir = $MasterDir+$DirArray[$ArrayCounter][0]
$RemoteDir = $DirArray[$ArrayCounter][1]
$searchext = $DirArray[$ArrayCounter][2]
$filetype = $DirArray[$ArrayCounter][3]
#if needed for different account
#$pass = $DirArray[$ArrayCounter][4]

#get file listing filtered by $searchext and convert to globbed input for curl
$filelist = dir $Dir ("*"+$searchext)
$filelist = $filelist -replace($searchext,',') -replace ($filetype,"")
$filelist = "{"+$filelist+"}"
$filelist = $filelist -replace(',}',('}'+$searchext)) -replace (' ','')

#launch curl if list is not empty, upload from local directory
if ($filelist -ne "{}")
{
#specify ftp server directory
$ftp = $ftpDir+$RemoteDir
#change local directory
cd $Dir
Start-Process -FilePath $curlpath -ArgumentList "-T $filelist $ftp -u $pass --ssl -k"
}
$ArrayCounter = $ArrayCounter+1
}

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
May 05, 2021 May 05, 2021

Copy link to clipboard

Copied

I use vbscript to run command line silently too, and I wonder how Bridge does such things...

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 06, 2021 May 06, 2021

Copy link to clipboard

Copied

Thanks for the info, I'll give it a try.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

I agree. My current method for using external programs (if they have a command line interface) is to create a .bat file using javascript then run that file. It does open up a command window, but I don't mind that. There are tricks to run it with the window minimized or hidden, though.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

I think part of this stems from Adobe transitioning Bridge to a fully 64 bit application and not wanting to update the 32 bit dlls they deem as unimportant.

 

Be prepared; it seems as if even ExtendScript Toolkit may be on the chopping block soon to be replaced by ExtendScript Debugger for Visual Studio. Another 32 bit app they are simply letting go instead of putting in some effort to update it for 64 bit for those of us who are used to using it in our development.

 

Announcing ExtendScript Debugger for Visual Studio Code

 

It's even being rumored that scripting in general may fall to the wayside in favor of their new Adobe UXP Developer Tools though as of now there is no official word on this.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

That's right but that's old news. They had to make new ESTK because Macs with some update removed 32-bit system where old ESTK still worked. On Windows we can use both. They said in fact to get rid of extendscript when UXP will be enough advanced but that plan could change.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

I'm not sure what is meant by "it was not being used in any Bridge User workflow" as I am a Bridge user and I use this in my workflow every day.

 

That said, why did the Bridge Team simply decide to remove an extremely useful feature and not replace it with something else? More to the point, why didn't they decide to include libCurl or OpenSSL in the Bridge package along with documentation on how to implement it?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

If that worked good and did not any problems, or needed new updates to keep it then yes, why to remove something that noone complained for and probably does not any other harm only because it exists in Bridge.

 

You can request to restore it for some next Bridge version at Adobe Bridge Feedback

Or else have more influence on incoming changes, participating in Bridge Prerelease

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

I hesitate to post this because Adobe might break it or remove it, but I discovered that the Socket Object still exists Socket object

 

I tried socket in the past but I found webaccesslib to be easier and to have more options, so I forgot about it. After some tinkering, I got socket and GET to work for my sparql queries. 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

new Socket() is also in Photoshop, but I found the Bridge offers more easier methods, one of them was webaccesslib. If you have some alternate solution / workaround for this specific case post your code as Adobe may not retrieve older but convinient functionatlity to make us happy.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

This is what I have working. Sorry for the long sparql

// variable for the query results
var reply = "";  
// create a new websocket object
var http = new Socket();  
// open the TCP web socket
if (http.open ("vocab.getty.edu:80", "UTF-8")) {
    // example search string entered by user
    var searchStringEntered = " Musée d'Orsay";
    // clean search text: remove leading and trailing spaces; remove symbols; insert +AND+
    var searchStringClean = searchStringEntered.replace(/^\s+|\s+$/g,'').replace(/[|;$%@<>."]/g, "")
    var searchString = searchStringClean.replace(/[ +&]/g, "+AND+")
    searchString = encodeURI(searchString)
    //  sparql query
    http.write ("GET "+"http://vocab.getty.edu/sparql.json?query=SELECT+%3FSubject+%3FprefName+%3Fdisplay+%3FindexName+%3FdisplayName+%3Fbio+%3Fplace+%3FplaceSubject+%3FplaceLabel+%3FplaceParentString+%3Flat+%3Flong+%3FscopeNote+%7B%0D%0A%3FSubject+skos%3AinScheme+ulan%3A%3B+luc%3Aterm+%22"+searchString+"%22%3B+gvp%3AprefLabelGVP+%5Bxl%3AliteralForm+%3FprefName%5D.%0D%0AOPTIONAL+%7B%3FSubject+xl%3AaltLabel+%5Bxl%3AliteralForm+%3FindexName%3B+gvp%3AtermDisplay+%3Findex%5D%3B+FILTER+%28+%3Findex+%3D+%3Chttp%3A%2F%2Fvocab.getty.edu%2Fterm%2Fdisplay%2FIndexing%3E+%29%7D%0D%0AOPTIONAL+%7B%3FSubject+xl%3AaltLabel+%5Bxl%3AliteralForm+%3FdisplayName%3B+gvp%3AtermDisplay+%3Fdisplay%5D%3B+FILTER+%28+%3Fdisplay+%3D+%3Chttp%3A%2F%2Fvocab.getty.edu%2Fterm%2Fdisplay%2FDisplay%3E+%29%7D%0D%0AOPTIONAL+%7B%3FSubject+foaf%3Afocus%2Fgvp%3AbiographyPreferred%2Fschema%3Adescription+%3Fbio%7D++%0D%0AOPTIONAL+%7B%3FSubject+foaf%3Afocus%2F+bio%3Aevent+%5Bdct%3Atype+%5Brdfs%3Alabel+%22location+%28activity+or+state%29%22%40en%5D%3B+schema%3Alocation+%3Fplace%5D.%0D%0A%3FplaceSubject+foaf%3Afocus+%3Fplace%3B+%0D%0Agvp%3AprefLabelGVP+%5Bxl%3AliteralForm+%3FplaceLabel%5D%3B%0D%0Agvp%3AparentString+%3FplaceParentString%3B+%0D%0Afoaf%3Afocus+%5Bwgs%3Alat+%3Flat%3B+wgs%3Along+%3Flong%3B%5D%7D+%0D%0AOPTIONAL+%7B%3FSubject+skos%3AscopeNote+%5Bdct%3Alanguage+gvp_lang%3Aen%3B+rdf%3Avalue+%3FscopeNote%5D%7D%0D%0A%7Dorder+by+%3FprefName&_implicit=false&implicit=true&_equivalent=false&_form=%2Fsparql "+
    "HTTP/1.0\r\n"+
    "Accept: text/html,charset/utf-8,application/sparql-results+json\r\n"+
    "Connection: close\r\n\r\n");  
    // send the request (set a long timeout)
    reply = http.read(99999999);  
    $.writeln(reply)
    // close the socket
    http.close();  
    };

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
May 07, 2021 May 07, 2021

Copy link to clipboard

Copied

Hopefully Br team think twice next time before they remove good stuff 😉

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Feb 11, 2022 Feb 11, 2022

Copy link to clipboard

Copied

I know this thread is old, but I think more needs to be said here. I've delayed updating my Bridge simply because the newer versions do not support the webaccesslib. So there goes that whole "[...]support for Webaccesslib is removed in the latest versions of Bridge as it was not being used in any Bridge User workflow[...]" idea out the window. I see so many posts on so many other forums asking the same question and the people getting upset when the find out that it's no longer supported.

 

Adobe doesn't want to continue support for webaccesslib. Fine. Here's a proposal. Since they are no longer developing it, then they shouldn't have any issues with the Copyright for it. Make the code for the dll public and allow the community itself to update and maintain it. In my experience with other Adobe users, I've come across a number of extremely intelligent people who who are familiar with various computer languages and coding and are more than willing to share with the community. Myself included.

I honestly don't understand where the issue is with this. Also, I'm very skeptical about the reason given that it wasn't being used in any workflows. How did you determine that? Whatever method you used, it was obviously flawed.

 

Yes, I realize there are other ways to accomplish the tasks available in webaccesslib but in my opinion, those are basically klunky workarounds when there was a direct way to accomplish the tasks. 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 12, 2022 Feb 12, 2022

Copy link to clipboard

Copied

That ship has sailed, been decommissioned, and sunk to become a reef. You can get similar functionality by calling cURL or similar (Cyberduck has a command line component, for example) if you have to access resources from a remote computer.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 12, 2022 Feb 12, 2022

Copy link to clipboard

Copied

LATEST

For now it's left at bottom, but we can draw attention by talking about it 🙂

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines