// Get three random base 36 characters to act as shard directories
$rand = wfBaseConvert( mt_rand( 0, 46655 ), 10, 36, 3 );
// Make sure ID is roughly lexicographically increasing for performance
- $id = str_pad( UIDGenerator::getTimestampedID128( 32 ), 26, '0', STR_PAD_LEFT );
+ $id = str_pad( UIDGenerator::newTimestampedUID128( 32 ), 26, '0', STR_PAD_LEFT );
// Segregate items by wiki ID for the sake of bookkeeping
$wiki = isset( $this->params['wiki'] ) ? $this->params['wiki'] : wfWikiID();
$url = $be->getContainerStoragePath( 'data' ) . '/' .
rawurlencode( $wiki ) . "/{$rand[0]}/{$rand[1]}/{$rand[2]}/{$id}";
- $be->prepare( array( 'dir' => dirname( $url ) ) );
+ $be->prepare( array( 'dir' => dirname( $url ), 'noAccess' => 1, 'noListing' => 1 ) );
if ( $be->create( array( 'dst' => $url, 'content' => $data ) )->isOK() ) {
return $url;
}