/**
  * @param File $f
  * @throws Exception
  */
 public function put(File $f)
 {
     $fp = fopen($f->getFullPath(), 'r');
     if (!$fp) {
         throw new Exception("Unable to open file: " . $f->getFilename());
     }
     $headers = array();
     if (!empty($this->config[self::FORCE_DL])) {
         $headers['Content-Disposition'] = 'attachment; filename=' . ($f->hasMethod('getFriendlyName') ? $f->getFriendlyName() : $f->Name);
     }
     $this->getContainer()->uploadObject($this->getRelativeLinkFor($f), $fp, $headers);
 }