Enforce URI uniquness
This commit is contained in:
parent
18f317a4ac
commit
fdc81f395d
6 changed files with 82 additions and 48 deletions
|
|
@ -10,7 +10,7 @@ import * as debug from 'debug';
|
|||
import fileType = require('file-type');
|
||||
import prominence = require('prominence');
|
||||
|
||||
import DriveFile, { getGridFSBucket } from '../models/drive-file';
|
||||
import DriveFile, { IMetadata, getGridFSBucket } from '../models/drive-file';
|
||||
import DriveFolder from '../models/drive-folder';
|
||||
import { pack } from '../models/drive-file';
|
||||
import event, { publishDriveStream } from '../publishers/stream';
|
||||
|
|
@ -45,7 +45,8 @@ const addFile = async (
|
|||
name: string = null,
|
||||
comment: string = null,
|
||||
folderId: mongodb.ObjectID = null,
|
||||
force: boolean = false
|
||||
force: boolean = false,
|
||||
uri: string = null
|
||||
) => {
|
||||
log(`registering ${name} (user: ${getAcct(user)}, path: ${path})`);
|
||||
|
||||
|
|
@ -224,12 +225,18 @@ const addFile = async (
|
|||
properties['avgColor'] = averageColor;
|
||||
}
|
||||
|
||||
return addToGridFS(detectedName, readable, mime, {
|
||||
const metadata = {
|
||||
userId: user._id,
|
||||
folderId: folder !== null ? folder._id : null,
|
||||
comment: comment,
|
||||
properties: properties
|
||||
});
|
||||
} as IMetadata;
|
||||
|
||||
if (uri !== null) {
|
||||
metadata.uri = uri;
|
||||
}
|
||||
|
||||
return addToGridFS(detectedName, readable, mime, metadata);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import * as request from 'request';
|
|||
|
||||
const log = debug('misskey:common:drive:upload_from_url');
|
||||
|
||||
export default async (url, user, folderId = null): Promise<IDriveFile> => {
|
||||
export default async (url, user, folderId = null, uri = null): Promise<IDriveFile> => {
|
||||
let name = URL.parse(url).pathname.split('/').pop();
|
||||
if (!validateFileName(name)) {
|
||||
name = null;
|
||||
|
|
@ -35,7 +35,7 @@ export default async (url, user, folderId = null): Promise<IDriveFile> => {
|
|||
.on('error', rej);
|
||||
});
|
||||
|
||||
const driveFile = await create(user, path, name, null, folderId);
|
||||
const driveFile = await create(user, path, name, null, folderId, false, uri);
|
||||
|
||||
// clean-up
|
||||
fs.unlink(path, (e) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue