|
|
|
@ -18,21 +18,20 @@ var DB = db.DB
|
|
|
|
|
const (
|
|
|
|
|
DBUploadSchema = `
|
|
|
|
|
CREATE TABLE IF NOT EXISTS upload (
|
|
|
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
upload_id CHAR(27) NOT NULL,
|
|
|
|
|
sha256 CHAR(64) NOT NULL,
|
|
|
|
|
file_name CHAR(255) NOT NULL,
|
|
|
|
|
file_type CHAR(255) DEFAULT '',
|
|
|
|
|
file_size INT NOT NULL,
|
|
|
|
|
file_ext CHAR(255) DEFAULT '',
|
|
|
|
|
status INT DEFAULT 0,
|
|
|
|
|
FOREIGN KEY (status) REFERENCES upload_status(type),
|
|
|
|
|
id serial PRIMARY KEY,
|
|
|
|
|
upload_id varchar(27) NOT NULL,
|
|
|
|
|
sha256 varchar(64) NOT NULL,
|
|
|
|
|
file_name varchar(255) NOT NULL,
|
|
|
|
|
file_type varchar(255) DEFAULT '',
|
|
|
|
|
file_size integer NOT NULL,
|
|
|
|
|
file_ext varchar(255) DEFAULT '',
|
|
|
|
|
status integer DEFAULT 0 REFERENCES upload_status(type),
|
|
|
|
|
UNIQUE (upload_id, sha256)
|
|
|
|
|
);
|
|
|
|
|
`
|
|
|
|
|
|
|
|
|
|
DBUploadView = `
|
|
|
|
|
CREATE VIEW IF NOT EXISTS upload_with_status
|
|
|
|
|
CREATE OR REPLACE VIEW upload_with_status
|
|
|
|
|
AS SELECT
|
|
|
|
|
upload.upload_id,
|
|
|
|
|
upload.sha256,
|
|
|
|
@ -67,7 +66,7 @@ upload.status = upload_status.type
|
|
|
|
|
file_size,
|
|
|
|
|
file_ext,
|
|
|
|
|
status
|
|
|
|
|
FROM upload WHERE sha256 = ? AND upload_id = ?`
|
|
|
|
|
FROM upload WHERE sha256 = $1 AND upload_id = $2`
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
@ -189,9 +188,9 @@ func init() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Populate status types
|
|
|
|
|
query := `INSERT INTO upload_status
|
|
|
|
|
(type, status) VALUES(?,?)
|
|
|
|
|
ON DUPLICATE KEY UPDATE status = ?`
|
|
|
|
|
query := `INSERT INTO upload_status (type, status)
|
|
|
|
|
VALUES($1,$2) ON CONFLICT (type) DO UPDATE
|
|
|
|
|
SET status = $3`
|
|
|
|
|
for k, v := range UploadStatus {
|
|
|
|
|
_, err := DB.Sql.Exec(query, k, v, v)
|
|
|
|
|
if err != nil {
|
|
|
|
|