update script minio

This commit is contained in:
Pasha 2024-11-21 13:40:57 +03:00
parent 6254aa585c
commit f82a80494f

@ -19,7 +19,6 @@ const (
mongoURI = "mongodb://test:test@localhost:27024/?authSource=admin" mongoURI = "mongodb://test:test@localhost:27024/?authSource=admin"
mongoDBName = "admin" mongoDBName = "admin"
collectionName = "verification" collectionName = "verification"
folder = "folder"
) )
func main() { func main() {
@ -69,7 +68,9 @@ func main() {
// получение всех файлов из минио по бакету // получение всех файлов из минио по бакету
func getAllFilesInBucket(ctx context.Context, client *minio.Client) ([]minio.ObjectInfo, error) { func getAllFilesInBucket(ctx context.Context, client *minio.Client) ([]minio.ObjectInfo, error) {
var files []minio.ObjectInfo var files []minio.ObjectInfo
objectCh := client.ListObjects(ctx, bucketName, minio.ListObjectsOptions{}) objectCh := client.ListObjects(ctx, bucketName, minio.ListObjectsOptions{
Recursive: true, // флаг рекурсивного прохода по расположениям, добавлен с добавлением folder
})
for object := range objectCh { for object := range objectCh {
if object.Err != nil { if object.Err != nil {
return nil, object.Err return nil, object.Err
@ -108,36 +109,13 @@ func getVerificationRecords(ctx context.Context, collection *mongo.Collection) (
// проверка на существования файла минио в монге по урлу // проверка на существования файла минио в монге по урлу
func checkContains(verifications []models.Verification, fileKey string) bool { func checkContains(verifications []models.Verification, fileKey string) bool {
firstTry := func(verifications []models.Verification, fileKey string) bool { fileURL := fmt.Sprintf("%s/%s/%s", minioEndpoint, bucketName, fileKey)
fileURL := fmt.Sprintf("%s/%s/%s", minioEndpoint, bucketName, fileKey) for _, verification := range verifications {
for _, verification := range verifications { for _, file := range verification.Files {
for _, file := range verification.Files { if file.Url == fileURL {
if file.Url == fileURL { return true
return true
}
} }
} }
return false
}
secondTry := func(verifications []models.Verification, fileKey string) bool {
for _, verification := range verifications {
for _, file := range verification.Files {
fileURL := fmt.Sprintf("%s/%s/%s/%s/%s", minioEndpoint, bucketName, folder, verification.UserID, fileKey)
if file.Url == fileURL {
return true
}
}
}
return false
}
if firstTry(verifications, fileKey) {
return true
}
if secondTry(verifications, fileKey) {
return true
} }
return false return false
} }