icon: IbDocumentText
Currently, this is only setup to handle new images, or modifications to existing images within SyndiHub for
New Construction
. At this time,Rental
properties are not yet supported, as the automation script has not been tested with these property types.
Which ever method you choose to upload the images, you will need to ensure that your images have been properly prepped. To do so, you will need to convert the images into 3 additional size formats.
- RAW (The original file size)
- 130x98
- 500x375
- 1024x768
These images should be located, and organized and uploaded to Amazon S3 as per the examples below. (Details on uploading the images can be found further in this document.)
syndication/
└───backend/
└───companies/
└───%CompanyID%/
├───130x98/
│ └───Company_Logo.png
└───Company_Logo.png
syndication/
└───backend/
└───projectlogos/
└───%ProjectID%/
├───130x98/
│ └───Project_Logo.png
└───Project_Logo.png
syndication/
└───backend/
└───projects/
└───%ProjectID%/
├───130x98/
│ ├───Project_Photo_1.png
│ ├───Project_Photo_2.png
│ └───Project_Photo_3.png
├───500x375/
│ ├───Project_Photo_1.png
│ ├───Project_Photo_2.png
│ └───Project_Photo_3.png
├───1024x768/
│ ├───Project_Photo_1.png
│ ├───Project_Photo_2.png
│ └───Project_Photo_3.png
├───Project_Photo_1.png
├───Project_Photo_2.png
└───Project_Photo_3.png
syndication/
└───backend/
└───projectfloorplans/
└───%ProjectFloorplanID%/
├───130x98/
│ ├───Project_Floorplan_Photo_1.png
│ ├───Project_Floorplan_Photo_2.png
│ └───Project_Floorplan_Photo_3.png
├───500x375/
│ ├───Project_Floorplan_Photo_1.png
│ ├───Project_Floorplan_Photo_2.png
│ └───Project_Floorplan_Photo_3.png
├───1024x768/
│ ├───Project_Floorplan_Photo_1.png
│ ├───Project_Floorplan_Photo_2.png
│ └───Project_Floorplan_Photo_3.png
├───Project_Floorplan_Photo_1.png
├───Project_Floorplan_Photo_2.png
└───Project_Floorplan_Photo_3.png
- When you are resizing your images, you only need to constrain to the width. This means that your image may end up being 130x75 for example. As long as the width is correct, you should be fine.
- Make sure that each size variant of the photos shares the same name as the parent, as demonstrated below.
- In terms of Project Photos, you can append as many photos as you wish, and the names do not matter. (They must still match their size variants as stated above.)
Whether you are uploading new images, or simply modifying images that exist currently, you will need to append the images to Amazon S3. There are two ways this can be achieved.
Generally, using Cloudberry is a much easier method of managing content in S3, as it provides you a simple FTP-esc interface to simply drag and drop files in and out. It's the overall preferred method.
Documentation for using the Amazon AWS Web Console is ultimately provided as a backup, in the event that the user doesn't have CloudBerry is unavailable.
To upload images to Amazon S3 using the Amazon AWS web console, simply head over to https://aws.amazon.com/console/ and login with the [email protected]
account.
Once you are logged in, select the S3 service.
Upon opening the S3 service, navigate to the appropriate bucket/path to upload your images.
Amazon S3 / Buckets / syndication / backend /
Full paths can be found in the Preparing images for upload section.
Use the Upload Button to upload new images to the S3 bucket. Alternately, you can drag your files over to upload them as well.
Finally, you will be asked to confirm the images, and directory of your upload. Once confirmed, simply click the Upload Button at the bottom of the page to commit your changes.
CloudBerry Explorer is a 3rd party tool, available for free, to manage content within an Amazon S3 environment. It is conveniently available for both MacOS and Windows.
To get started, you will need to download and install the CloudBerry Explorer software.
Download CloudBerry Explorer here!
Once you run CloudBerry Explorer for the first time, you will need to configure an S3 connection. If the login window does not appear, you can initiate the login by selecting File > Amazon S3.
To setup your S3 connection, give your connection a Display Name, and fill in the Access Key and Secret Key. The rest of the settings can remain default, as outlined in the example below. Click on OK to save your configuration.
ACCESS KEY: AKIAWDEHN2VZMNG6MME4
SECRET KEY: ****************************************
After configuring your S3 connection, you should now be able to select your connection in the sources dropdown. This will allow you to navigate the S3 connection.
Navigate to the appropriate bucket/path to upload your images.
Amazon S3 / Buckets / syndication / backend /
From here, you can simply drag and drop images between your local workstation and the Amazon S3 bucket of your choice.
To inject these images into the SyndiHub Database, a custom script has been written to help assist with the automation of injecting these images. Once you have prepared your images and uploaded them to the appropriate locations with Amazon S3, you can use this script to inject these images into the database.
To use this script, you will first need to login to the SyndiHub MySQL Database server. To do so, you will need to establish an RDP connection.
On a Windows computer, this can be achieved by running the native Remote Desktop Connection app installed on any Windows machine. You can find the Remote Desktop Connection app by searching for mstsc in your start menu, or within a Run dialog.
Or
On a MacOS computer, you will need to download the Microsoft Remote Desktop software from the Apple App store.
Download Microsoft Remote Desktop here!
Run your RDP of choice, on your chosen Operating System. You will need to establish a connection to the following server.
Once you have connected to the remote server, you will need to launch the SQL Server Management Studio. An icon for this can be found on the desktop, or within the start menu.
Within the SQL Server Management Studio, open the custom script with File > Open > File.... The script is located at C:\Users\Administrator\Desktop\Custom Queries\Manual Image Updates\Upload Images v2.sql
on the server.
When you open the script, please take a moment to read through the header notes. There are some very important points here. A copy of these notes have been appended below.
SyndiHub Semi-Automatic Injection Script - v0.1
This script aims to semi-automate the process of manually injecting images into the SyndiHub Database.
This script simplifies the process for the end user, by collecting a short list of simple inputs from the user
and attempting to handle the rest automatically.
Within the "-- USER INPUTS" section below, toggle on which functions you would like to execute, and set the
variables within to appropriate values as needed.
╔═══════════════════════════════════════════════════════════════════════════╗
║ IMPORTANT NOTES: ║
║ ║
║ - It is important to copy and paste your output from the "Messages" tab ║
║ upon completion. This will allow us to analyse the output in the event ║
║ that something goes wrong. ║
║ ║
║ - It is important to ensure that your ID's are associated with each ║
║ other. ║
║ Example. The Project ID MUST! be that of a Project ID associated with ║
║ the Company ID you have specified. ║
║ ║
║ - This script has been tested extensivly and appears to opperate without ║
║ issue. Additional details about each configurable option have been ║
║ noted below. ║
║ ║
║ - Spacing is IMPORTANT! Specifically with the image lists for ║
║ @ProjectImages and @ProjectFloorPlanImages. Simply overwrite the ║
║ existing items, retaining the original -> and spacing. This list can be ║
║ expanded beyond the example 3 items, or shortened as needed. ║
║ ║
║ WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ║
║ ║
║ Do not modify any code outside of the "-- USER INPUTS" section below! ║
║ Doing so could potentially destroy the script or worse, the database. ║
║ ║
║ Reminder! ║
║ ║
║ THIS IS A LIVE PRODUCTION DATABASE! ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════╝
To use the script, you just need to fill out the appropriate variables in the -- USER INPUTS section.
At this time, the following configurable options include
/* Toggles */
-- Toggle functions on and off as needed:
-- This will disable any actual changes to the Database
SET @Test_Mode = 'True'
-- Enable additional Debug output in the Messages tab
SET @Toggle_Debug = 'False'
-- Output the tables modified.
-- Results are compared against CompanyID: 84828 and ProjectID: 5905
SET @Show_Tables = 'False'
-- Update the Company Logo
-- *Requires @CompanyID and @CompanyLogo
SET @Update_Company_Logo = 'False'
-- Update the Project Logo and Photos
-- *Requires @ProjectID, @ProjectLogo, and @ProjectImages
SET @Update_Project_Photos = 'False'
-- Update the Project Floorplan Photos
-- *Requires @ProjectID, @ProjectFloorplanID and @ProjectFloorPlanImages
SET @Update_Floorplan_Photos = 'False'
-- Set the stock 'Register Now' image for the selected FloorPlanIDs.
-- *Requires @Update_Floorplan_Photos
SET @Use_Stock_Image = 'False'
/* Set IDs */
-- !!! MAKE SURE THE IDS ARE RELATED !!! (Examples Below)
-- Logel Homes Company ID - 85255
SET @CompanyID = 0
-- Sage Walk - 7193
SET @ProjectID = 0
-- FloorPlan ID - 65095 (Sage Walk)
SET @ProjectFloorplanID = 0
/* Set Images */
-- Upload the images to the following locations:
-- S3://syndication/backend/companies/%CompanyID%
SET @CompanyLogo = ''
-- S3://syndication/backend/projectlogos/%ProjectID%
SET @ProjectLogo = ''
-- S3://syndication/backend/projects/%ProjectID%
SET @ProjectImages =
'
-> Example 01.jpg
-> Example 02.jpg
-> Example 03.jpg
'
-- S3://syndication/backend/projectfloorplans/%FloorplanID%
SET @ProjectFloorPlanImages =
'
-> Example Floorplan 01.jpg
-> Example Floorplan 02.jpg
-> Example Floorplan 03.jpg
'
Once you have configured the appropriate variables, and checked everything over twice for errors, you are then free to execute the query script to initiate your changes to the database. To do so, simply click on the button in the toolbar to execute your script. As long as you have @Test_Mode
set to False
, your changes will be pushed to the live database.
After executing the script, you should copy and email your Messages output to j**********g@m**************.ca for review. This is primarily to investigate if anything went wrong, as well as to retain a log to revert any changes made, in the event that something does go wrong.
An example output from Messages can be found below.
[DEBUG] - Debug Disabled
\
}#########################################################################
/
=== Initializing ===
\
}#########################################################################
/
|----------------------------------------------------------------------------
| Skipping @Update_Company_Logo............... [0] (False)
|----------------------------------------------------------------------------
\
}#########################################################################
/
|----------------------------------------------------------------------------
| Executing @Update_Project_Photos............ [1] (True)
|----------------------------------------------------------------------------
(1 row(s) affected)
|----------------------------------------------------------------------------
| @Update_Project_Photos...................... COMPLETE!
|----------------------------------------------------------------------------
\
}#########################################################################
/
|----------------------------------------------------------------------------
| Executing @Update_Project_Photos_2.......... [1] (True)
|----------------------------------------------------------------------------
| ==== Scrubbing ====
| -> Current Links: --------- https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%201.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%202.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%203.jpg
| -> Scrubbing Image: ------- [3]
| -> Scrubbed Text: --------- Sage%20Walk%203.jpg
| -> Scrubbed Text Length: -- [19]
| -> Remaining Links: ------- https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%201.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%202.jpg
| ==== Scrubbing ====
| -> Current Links: --------- https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%201.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%202.jpg
| -> Scrubbing Image: ------- [2]
| -> Scrubbed Text: --------- Sage%20Walk%202.jpg
| -> Scrubbed Text Length: -- [19]
| -> Remaining Links: ------- https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%201.jpg
| ==== Scrubbing ====
| -> Current Link: ---------- https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%201.jpg
| -> Scrubbing Image: ------- [1]
| -> Scrubbed Text: --------- Sage%20Walk%201.jpg
| -> Scrubbed Text Length: -- [19]
| ==== COMPLETE! ====
| -> RAW Images: ------------ https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%201.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%202.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/Sage%20Walk%203.jpg
| -> 130x98 Images: --------- https://cdn.wall2wallmedia.com/backend/projects/7212/130x98/Sage%20Walk%201.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/130x98/Sage%20Walk%202.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/130x98/Sage%20Walk%203.jpg
| -> 500x375 Images: -------- https://cdn.wall2wallmedia.com/backend/projects/7212/500x375/Sage%20Walk%201.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/500x375/Sage%20Walk%202.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/500x375/Sage%20Walk%203.jpg
| -> 1024x768 Images: ------- https://cdn.wall2wallmedia.com/backend/projects/7212/1024x768/Sage%20Walk%201.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/1024x768/Sage%20Walk%202.jpg|https://cdn.wall2wallmedia.com/backend/projects/7212/1024x768/Sage%20Walk%203.jpg
| Inserting new project images...
(3 row(s) affected)
| Setting NumberOfListingPhotos to [3]...
(0 row(s) affected)
|----------------------------------------------------------------------------
| @Update_Project_Photos_2.................... COMPLETE!
|----------------------------------------------------------------------------
\
}#########################################################################
/
|----------------------------------------------------------------------------
| Executing @Update_Floorplan_Photos.......... [1] (True)
|----------------------------------------------------------------------------
| Executing @Use_Stock_Image.................. [1] (True)
|----------------------------------------------------------------------------
| Inserting stock floorplan image...
(1 row(s) affected)
| Inserting FloorPlan Images...
(3 row(s) affected)
|----------------------------------------------------------------------------
| @Update_Floorplan_Photos.................... COMPLETE!
|----------------------------------------------------------------------------
| @Use_Stock_Image............................ COMPLETE!
|----------------------------------------------------------------------------
\
}#########################################################################
/
|----------------------------------------------------------------------------
| Skipping @Show_Tables....................... [0] (False)
|----------------------------------------------------------------------------
\
}#########################################################################
/
| === SCRIPT FINISHED! ===