Shared dropbox folder access programmatically - dropbox

Is it possible to access publicly shared dropbox folder or file programmatically with out using app key or app secret,just by using url

If it helps someone :
Option to share DropBox folders and access files via URLs by names - with NO NEED TO Share each file
e.g.
STEP 1 : Create a new folder for your images ( or any other files ) in your PUBLIC Dropbox folder
1. Create a folder in PUBLIC folder (e.g. MyTestFolder)
2. Put an image file in this folder (e.g Grupya_whatsApp_logo.jpg)
-
STEP 2 : Get the USERID of your public Dropbox folder ( it is the same USERID also for subfolder within PUBLIC )
3. Copy public link of Image created in step 2 (e.g Grupya_whatsApp_logo.jpg)
4. Please note syntax will be something like :
https://u17835471.dl.dropboxusercontent.com/u/17845471/MyTestFolder/Grupya_whatsApp_logo.jpg
5. You May change URL reference to somthing shorter :
https://dl.dropbox.com/u/17845471/MyTestFolder/Grupya_whatsApp_logo.jpg
-
STEP 3 : Now - You can create any sub folder under PUBLIC folder and reference to it by using Filenames that are in this directory, directly
https://dl.dropbox.com/u/17845471/MyTestFolder/Grupya_whatsApp_logo.jpg
https://dl.dropbox.com/u/17845471/MyTestFolder/BFly.jpg

If you're referring to a Dropbox shared link for the folder, you can download all of the file content as shown here:
https://www.dropbox.com/help/201
For anything else, you'd need to use the API, which does require an API app, e.g.:
https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_metadata
https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file

Related

Why is my zip folder not locked with password, but the files inside are locked?

I have been struggling for a few hours now, trying to set a password on a zip folder.
However, however many times I tried with different code, the password is applied to each file inside the zip folder, and that's not what I want. I only want to apply the password to the folder itself, and no password should be set to the individual files inside.
Here is my code: (For your information, I am using DotNetZip)
//Assume that there is a folder with multiple files in it at C:\\ExampleFolder
using (Ionic.Zip.ZipFile z = Ionic.Zip.ZipFile())
{
z.Password = "MyPassword"; //Setting the password
z.AddDirectory(#"C:\\ExampleFolder"); //I thought the directory added here should be pw-protected
z.Save(#"C:\\FinalResult.zip"); //Create the pw-protected zip folder
}
However, when I run this program, it does create a zip folder named FinalResult.zip, but that zip folder is not password-protected. All the files inside that zip folder are password-protected. If this is the case, the user will have to enter the password every time they try to open a file inside, which is kind of inconvenient. I just want the user to have to enter the password only once when they try to open the zip folder.
Can anyone tell me why this code doesn't do what I want to achieve?
The password is actually working correctly:
When writing a zip archive, this password is applied to the entries, not to the zip archive itself. It applies to any ZipEntry subsequently added to the ZipFile, using one of the AddFile, AddDirectory, AddEntry, or AddItem methods, etc. When reading a zip archive, this property applies to any entry subsequently extracted from the ZipFile using one of the Extract methods on the ZipFile class.
See the remarks section in the documentation for Password in DotNetZip
https://documentation.help/DotNetZip/4444d7a5-3324-8af9-3ed3-5bf6551d3cd1.htm

OneDrive API - Create path using REST API

I'm need to create a path for uploading a file:
-> ROOT/FOLDER 1/FOLDER 2/FOLDER 3
But I trying lot of things and the only way I make it to work is to create folders in separate calls then upload my file:
pseudo code:
get root folder -> create folder 1
get folder 1 -> create folder 2
get folder 2 -> create folder 3
get folder 3 -> upload my file
Is there a way that I can create this path in one call ??
Thank you.
EDIT:
I use the old api call:
https://api.onedrive.com/v1.0/drive/items/E75C37F6358CE17D!138:/Devis/2010/Devis_DEV004.pdf:/upload.createSession?access_token=XXXXX
and it returns:
{"error":{"code":"itemNotFound","message":"Item does not exist"}}
You can do this in a single call using PUT:
PUT https://graph.microsoft.com/v1.0/me/drive/root:/foo/bar/baz/file.txt:/content
You can also use the same format with the createUploadSession action as well:
POST https://graph.microsoft.com/v1.0/me/drive/root:/foo1/bar2/baz3/file.txt:/createUploadSession
This will automatically create all the necessary folders in the path if they don't already exist.

How i make my script create the doc in a folder not the root directory in google drive

I have a script that merger some google docs, but it create the file in the root dir, i want the script to add it into a existing folder.
Code
Sorry im new to this..How do i do this?
Thanks
I believe you want to achieve this using Apps Script.
You could use Apps script's DriveApp.getFolderById() method to get the required folder. Also DocumentApp.create() method to create a document.
Please find the working example to create a file in specific Drive folder:
function createDoc()
{
var targetFolder = DriveApp.getFolderById(folderID);
var newDoc = DocumentApp.create('My file1');
var file = DriveApp.getFileById(newDoc.getId());
targetFolder.addFile(file);
}
Tried and tested the code.
If you want to create a Spreadsheet file, you just use SpreadsheetApp instead. Hope that helps!

path to be given in setDestination method of Zend_Form_Element_File in Zend Framework

I am trying to upload a file in Zend framework. I have following code in my form:
$this->addElementPrefixPath('App', 'App/');
$this->setName('upload');
$this->setAttrib('enctype', 'multipart/form-data');
$description = new Zend_Form_Element_Text('description');
$description->setLabel('Description')
->setRequired(true)
->addValidator('NotEmpty');
$file = new Zend_Form_Element_File('file');
$path="/images";
$file->setDestination($path)
->setLabel('File')
->setRequired(true)
->addValidator('NotEmpty');
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Upload');
$this->addElements(array($description, $file, $submit));
I am using netbeans and I have one folder named images under public folder. I want that all files are uploaded into images folder but when I run the project it gives the error as
The given destination is not a directory or does not exist
If I give the full path as C:\Users\398853\Documents\NetBeansProjects\ZendWithFileUpload\public\images then it runs fine and the file gets uploaded into images folder. But when I give $path='/images' It says above error'Why? What should be the path given?Thanks.
In SetDestination should be setted absolute path to desitnation folder (/var/www/... or c:/webserver/... in case when you win-user).
But good practice is to get absolute path with functions getcwd() or realpath(dirname(FILE)).
So, at first you shoud define constant (for example with name PUBLIC_PATH) in index.php file (usually situated in public-folder).
defined('PUBLIC_PATH')
|| define('PUBLIC_PATH', realpath(dirname(__FILE__)));
This way you can use variable PUBLIC_PATH instead of writting string "/var/www/..." as prefix to your real path to upload folder.
So, if your "images" folder situated in "public" folder, you should user such construction:
$file->setDestination(PUBLIC_PATH . '/images');
This code also will work after upload project from localhost to webserver.
add config to module.config.php
return array (
....
//other settings
'module_config' => array(
'upload_location' => __DIR__.'/../../../data/uploads'
)
);
add controller
public function getFileUploadLocation() {
$config = $this->getServiceLocator()->get('config');
return $config['module_config']['upload_location'];
}
and use
....
$uploadPath = $this->getFileUploadLocation();
$adapter->setDestination($uploadPath);
....
In your bootstrap code, you need to set your application's root folder.
Whenever you want to get the path of a subfolder in your application folder (eg. images in your scenario), you need to use this variable and append your folder name.
If your bootstrap code is in the Application folder which is under the public root folder,
Zend_Registry::set('APP_ROOT', dirname(dirname(__FILE__)));
In other places of your application, when you want get a folder path, like you want to get the image folder path under the public folder, u need to use,
Zend_Registry::get('APP_ROOT') . "/images";

How to set image path for fckeditor?

I am using fckeditor for PHP. I have set an absolute path for image uploading. I can upload images, but I am unable to use images that were uploaded. Can anyone help me find my problem?
Here is the code I have changed in my config.php file:
// Path to user files relative to the document root.
$Config['UserFilesPath'] = '/userfiles/' ;
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Useful if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = '/var/www/host/mysite//userfiles/' ;
I just solved this frustrating problem after a full day of searching on Google.
The solution is here. Look for:
Returning Full URLs
You can configure the File Browser to return full URLs to FCKeditor, like "http://www.example.com/userfiles/", instead of absolute URLs, like "/userfiles/". To do that, you must configure the connector, combining the UserFilesPath and UserFilesAbsolutePath settings:
UserFilesPath: include here the full URL for the user files directory. For example, set it to "http://www.example.com/userfiles/".
UserFilesAbsolutePath: include here the server path to reach the above URL directory. For example, in a Windows environment, you could have something like "C:/inetpub/mysite/userfiles/", while on Linux, something like "/usr/me/public_html/mysite/userfiles/".
Just adjust the above settings to your installation values and the File Browser will start returning full URLs to the editor.
For your localhost :
$Config['UserFilesPath'] = 'http://localhost/mywebsite/userfiles/' ;
$Config['UserFilesAbsolutePath'] = 'C:\\wamp\www\\mywebsite\\userfiles\\' ;
and in order to get your images from there, use :
$path = 'http://localhost/mywebsite/userfiles/image/myimage.jpg';
Now, For your web server:
$Config['UserFilesPath'] = 'http://localhost/mywebsite/userfiles/' ; // if your webserver named localhost as mine
$Config['UserFilesAbsolutePath'] = '/var/www/vhosts/mywebsite.com/httpdocs/' ;
and the images path remains the same as above.
Check the permission of the folder
Full Subject: FCK editor 2.x: File/image/video upload in different folders for different applications using a single FCKeditor, by making $Config['UserFilesPath'] fully dynamic in a secure way
It can be done in many ways. I am explaining a process, which I applied as per my php applications' code structure. The same code structure/framework I followed for different applications, with each application as a sub-folder in my server. So, there is a logical need to use one single FCKeditor and configure it in some way, so that it work properly for all the applications. The content part of FCKeditor is ok. It can easily be reused by different applications or projects from a single FCKeditor component. But the problem arises with file upload, like image, video or any other document. To make it applicable for different project, the files must be uploaded in separe folders for different projects. And for that $Config['UserFilesPath'] must by configured with dynamic folder path, means different folder path for each project, but calling the the same FCKeditor component in the same location. I am explaning some differnt process together in a step-by-step way. Those worked for me fine with FCKeditor version 2.5.1 and VersionBuild 17566 and I hope they will work for others as well. If it does not work for other developrs, then may be they need to make some tweaks in those process as per their project code structure and folder write permission as well as per the FCKeditor version.
1) In fckeditor\editor\filemanager\connectors\phpconfig.php file
a) Go after global $Config ; and $Config['Enabled'] = false ;
i) There, if want a session dependent secure method: only for single site setting: i.e. one FCKeditor for each one project domain or subdomain, not one FCKeditor for multiple project then place this code:
if(!isset($_SESSION)){
session_start();
}
if(isset($_SESSION['SESSION_SERVER_RELATIVEPATH']) && $_SESSION['SESSION_SERVER_RELATIVEPATH']!="") {
$relative_path=$_SESSION['SESSION_SERVER_RELATIVEPATH'];
include_once($_SERVER['DOCUMENT_ROOT'].$relative_path."configurations/configuration.php");
}
N.B.: Here, $_SESSION['SESSION_SERVER_RELATIVEPATH']: relative folder path of the project corresponding to the webroot; should be like "/project/folder/path/" and set this session variable in a common file in your project where the session started. And there should be a configurations/configuration.php as the configuration file in your project. If it's name or path is different you have to place the corresponding path here instead of configurations/configuration.php
ii) If want to use a single FCKeditor component for different projects represented as different sub-folders and with a session dependent secure way (Assuming different session_name for different projects, to differentiate their sessions in a single server). But it will not work if projects represented as sub-domains or different domains, then have to use the session independent way (iii) provided bellow (though it is insecure). Place this code:
if(!isset($_SESSION)){
session_name($_REQUEST['param_project_to_fck']);
session_start();
}
if(isset($_SESSION['SESSION_SERVER_RELATIVEPATH']) && $_SESSION['SESSION_SERVER_RELATIVEPATH']!="") {
$relative_path=$_SESSION['SESSION_SERVER_RELATIVEPATH'];
include_once($_SERVER['DOCUMENT_ROOT'].$relative_path."configurations/configuration.php");
}
Please read N.B. at the end of previous point, i.e. point (i)
iii) If want to use a single FCKeditor component for different projects represented either different sub-folders as well as sub-domains or domains (though it is not fully secure). Place this code:
if(isset($_REQUEST['param_project_to_fck']) && $_REQUEST['param_project_to_fck']!=""){ //base64 encoded relative folder path of the project corresponding to the webroot; should be like "/project/folder/path/" before encoding
$relative_path=base64_decode($_REQUEST['param_project_to_fck']);
include_once($_SERVER['DOCUMENT_ROOT'].$relative_path."configurations/configuration.php");
}
Please read N.B. at the end of point (i)
b)Now after that for any case you selected, please find this code:
// Path to user files relative to the document root.
$Config['UserFilesPath'] = '/userfiles/' ;
and replace the following code:
if(isset($SERVER_RELATIVEPATH) && $SERVER_RELATIVEPATH==$relative_path) { //to make it relatively secure so that hackers can not create any upload folder automatcally in the server, using a direct link and can not upload files there
$Config['Enabled'] = true ;
$file_upload_relative_path=$SERVER_RELATIVEPATH;
}else{
$Config['Enabled'] = false ;
exit();
}
// Path to user files relative to the document root.
//$Config['UserFilesPath'] = '/userfiles/' ;
//$Config['UserFilesPath'] = $file_upload_relative_path.'userfiles/' ;
$Config['UserFilesPath'] = '/userfiles'.$file_upload_relative_path;
Here $SERVER_RELATIVEPATH is the relative path and it must be set in your project's configuration file included previously.
Here you can set the $Config['UserFilesPath'] with any other dynamic folder path using $file_upload_relative_path variable.In my bluehost linux server, as their was a folder user permission conflict between the project root folder (0755 permission) and the userfiles folder under it and subfolders under userfiles (should be 0777 as per FCKeditor coding), so it does not allow uploading files in those folders. So, I created a folder userfiles at the server webroot (beyond the project root folder), and set the permission to 0777 to it, use the code for the $config setting as :
$Config['UserFilesPath'] = '/userfiles'.$file_upload_relative_path;
But, if you have no problem with write permission in the project's subfolders in your case, then you can use the previous line (commented out in the previous code segment):
$Config['UserFilesPath'] = $file_upload_relative_path.'userfiles/' ;
Mind it, you mast comment out the existing $Config['UserFilesPath'] = '/userfiles/' ; in this file by either replacing or simply commenting out if it exist in other place of the file.
2) If you choose 1) (a) (ii) or (iii) method then open
(a) fckeditor\editor\filemanager\browser\default\browser.html file.
Search for this line: var sConnUrl = GetUrlParam( 'Connector' ) ;
Put these commands after that line:
var param_project_to_fck = GetUrlParam( 'param_project_to_fck' ) ;
Now, Search for this line: sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;
Put this command after that line:
sUrl += '&param_project_to_fck=' + param_project_to_fck ;
(b) Now, open ckeditor\editor\filemanager\browser\default\frmupload.html file.
Search for this line (it should be in the SetCurrentFolder() function):
sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath ) ;
Put this command after that line:
sUrl += '&param_project_to_fck='+window.parent.param_project_to_fck;
3) Now where you want to show the FCKeditor in your project, you have to put those lines first in the corresponding php file/page:
include_once(Absolute/Folder/path/for/FCKeditor/."fckeditor/fckeditor.php") ;
$oFCKeditor = new FCKeditor(Field_name_for_editor_content_area) ;
$oFCKeditor->BasePath = http_full_path_for_FCKeditor_location.'fckeditor/' ;
$oFCKeditor->Height = 400;
$oFCKeditor->Width = 600;
$oFCKeditor->Value =Your_desired_content_to_show_in_editor;
$oFCKeditor->Create() ;
a) Now, if you choose 1) (a) (ii) or (iii) method then place the following code segment before that line: $oFCKeditor->Create() ;
$oFCKeditor->Config["LinkBrowserURL"] = ($oFCKeditor->BasePath)."editor/filemanager/browser/default/browser.html?Connector=../../connectors/php/connector.php&param_project_to_fck=".base64_encode($SERVER_RELATIVEPATH);
$oFCKeditor->Config["ImageBrowserURL"] = ($oFCKeditor->BasePath)."editor/filemanager/browser/default/browser.html?Type=Image&Connector=../../connectors/php/connector.php&param_project_to_fck=".base64_encode($SERVER_RELATIVEPATH);
$oFCKeditor->Config["FlashBrowserURL"] = ($oFCKeditor->BasePath)."editor/filemanager/browser/default/browser.html?Type=Flash&Connector=../../connectors/php/connector.php&param_project_to_fck=".base64_encode($SERVER_RELATIVEPATH);
b) if you chose 1) (a) (ii) method, then in the above code code segment, just replace all the texts: base64_encode($SERVER_RELATIVEPATH) with this one: base64_encode(session_name())
And you are done.
UserFilesPath: include here the full URL for the user files directory. For example, set it to "http://www.example.com/userfiles/".