aboutsummaryrefslogtreecommitdiffstats
path: root/includes/upload/UploadFromUrl.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/upload/UploadFromUrl.php')
-rw-r--r--includes/upload/UploadFromUrl.php20
1 files changed, 20 insertions, 0 deletions
diff --git a/includes/upload/UploadFromUrl.php b/includes/upload/UploadFromUrl.php
index c5eaf8f820f3..8753913e331e 100644
--- a/includes/upload/UploadFromUrl.php
+++ b/includes/upload/UploadFromUrl.php
@@ -117,6 +117,26 @@ class UploadFromUrl extends UploadBase {
}
/**
+ * Provides a caching key for an upload from url set of parameters
+ * Used to set the status of an async job in UploadFromUrlJob
+ * and retreive it in frontend clients like ApiUpload. Will return the
+ * empty string if not all parameters are present.
+ *
+ * @param array $params
+ * @return string
+ */
+ public static function getCacheKey( $params ) {
+ if ( !isset( $params['filename'] ) || !isset( $params['url'] ) ) {
+ return "";
+ } else {
+ // We use sha1 here to ensure we have a fixed-length string of printable
+ // characters. There is no cryptography involved, so we just need a
+ // relatively fast function.
+ return sha1( sprintf( "%s|||%s", $params['filename'], $params['url'] ) );
+ }
+ }
+
+ /**
* @return string[]
*/
private static function getAllowedHosts(): array {