Skip to content

Instantly share code, notes, and snippets.

View bagasdisini's full-sized avatar
🌍

Bagas bagasdisini

🌍
  • PT Atmatech Global Informatika
  • Surabaya, Indonesia
  • 00:39 (UTC +07:00)
  • LinkedIn in/bagasdisini
View GitHub Profile
@bagasdisini
bagasdisini / GetPresignedUrl.go
Created June 11, 2024 06:41
Get presigned url AWS S3 (private file)
func GetPresignedUrl(file string) (string, error) {
req, _ := S3Client.GetObjectRequest(&s3.GetObjectInput{
Bucket: aws.String(config.S3.Bucket),
Key: aws.String(file),
ResponseContentDisposition: aws.String("attachment; filename=\"" + filepath.Base(file) + "\""), // to make sure the file is automatically downloaded
})
return req.Presign(config.S3.PresignDuration) // time.Duration
}
@bagasdisini
bagasdisini / GetRabbitMessageThenProcess.go
Last active June 11, 2024 06:38
Getting data message from Rabbit MQ then process each data one by one.
func GetRabbitMessageThenProcess() {
defer log.RecoverWithTrace()
_, ch := rabbit.ConnectMQ()
_, err := ch.QueueDeclare(
etc.TranscriptQueue,
true,
false,
false,
false,
@bagasdisini
bagasdisini / DeleteFromS3.go
Created May 28, 2024 06:49
Deleting file from AWS S3 using Go
func DeleteFromS3(dir string, filename string) error {
log.Debug("Deleting media from amazon s3 server...")
fileDestination := filename
if len(dir) > 0 {
fileDestination = dir + "/" + filename
}
svc := s3.New(session.Must(session.NewSession(&aws.Config{
Region: aws.String(config.S3.Region),
@bagasdisini
bagasdisini / RandomString.go
Last active June 7, 2024 06:31
Randomize string with the most efficient way
func RandomString(n int) string {
src := rand.NewSource(time.Now().UnixNano())
const str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
var letterIdxBits int64 = 6
var letterIdxMask int64 = 1<<letterIdxBits - 1
letterIdxMax := 63 / letterIdxBits
b := make([]byte, n)
for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; {
if remain == 0 {
@bagasdisini
bagasdisini / PrintMemUsage.go
Last active June 7, 2024 06:31
Go - Print Current Memory Usage
func PrintMemUsage() {
var m runtime.MemStats
runtime.ReadMemStats(&m)
fmt.Printf("Alloc = %v MiB", m.Alloc / 1024 / 1024)
fmt.Printf("\tTotalAlloc = %v MiB", m.TotalAlloc / 1024 / 1024)
fmt.Printf("\tSys = %v MiB", m.Sys / 1024 / 1024)
fmt.Printf("\tNumGC = %v\n", m.NumGC)
}
@bagasdisini
bagasdisini / main.go
Created February 4, 2024 13:30
Golang - Retrieve data from the database continuously.
package main
import (
"fmt"
"time"
)
var data string
func main() {