public static function s3_document()
 {
     global $Conf, $Now;
     if (self::$_s3_document === false) {
         if ($Conf->setting_data("s3_bucket")) {
             $opt = array("bucket" => $Conf->setting_data("s3_bucket"), "key" => $Conf->setting_data("s3_key"), "secret" => $Conf->setting_data("s3_secret"), "scope" => $Conf->setting_data("__s3_scope"), "signing_key" => $Conf->setting_data("__s3_signing_key"));
             self::$_s3_document = new S3Document($opt);
             list($scope, $signing_key) = self::$_s3_document->scope_and_signing_key($Now);
             if ($opt["scope"] !== $scope || $opt["signing_key"] !== $signing_key) {
                 $Conf->save_setting("__s3_scope", 1, $scope);
                 $Conf->save_setting("__s3_signing_key", 1, $signing_key);
             }
         } else {
             self::$_s3_document = null;
         }
     }
     return self::$_s3_document;
 }