getAttachmentURL

This method is used to get the URL of an S-Drive Attachment.

String getAttachmentURL(String parentId, String fileObjectId,
Long timeValue)
Parameters:
parentId: Id of the parent object. You can use 15-character id or 18-character id.
fileObjectId: Id of the attachment (file) object. This can be retrieved using an SOQL query. An example can be found in following sections.
timeValue: Expiration time of the link in seconds.
Return Value: The method will return the URL of the S-Drive attachment.
Our example is about retrieving an image file from S-Drive Account Attachments and displaying it inside Account Page Layout. You can customize SOQL call and other options similar to the example.

  1. Override Accounts View button with Account Files Page to upload a JPG image file to S-Drive Account Attachments. 

  2. Create an apex class named ExamplePageController. In below code 1*60 is equivalent to one minute. You can set expiring time like this. Also, you can configure your SOQL query based on your needs. 

  3. Create an apex class named ExamplePageController. In below code 1*60 is equivalent to
    one minute. You can set expiring time like this. Also, you can configure your SOQL query
    based on your needs.



    public with sharing class ExamplePageController { private Account acct; private String fileURL = ''; public ExamplePageController(ApexPages.StandardController controller) { this.acct = (Account)controller.getRecord(); List<cg__AccountFile__c> accountFiles = [Select id from cg__AccountFile__c where cg__AccountFile__c.cg__WIP__c = false and cg__AccountFile__c.cg__Content_Type__c = 'image/jpg' and cg__AccountFile__c.cg__Account__c = :acct.id]; if(accountFiles.size() > 0) { fileURL = cg.SDriveTools.getAttachmentURL(acct.id, accountFiles[0].id, (1 * 60)); } else { fileURL = 'http://www.cyangate.com/noimage.jpg'; } } public String getFileURL() { return fileURL; } }
  4. Create an ExamplePage apex page with below content



    <apex:page standardController="Account" extensions="ExamplePageController"> <apex:image url="{!fileURL}" /> </apex:page>
  5. Customize your account page layout and include ExamplePage inside the layout.

  6. Now if you reload your account (which contains an image file) you'll see a screen like below.
    You can customize the apex class and page based on your needs.


    If you would like to get an old version of a file, you should add id of an old version file into
    fileoObjectIds list.