google 汇总数据下载

//pom配置
       <dependency>
	        <groupId>com.google.cloud</groupId>
	        <artifactId>google-cloud-storage</artifactId>
	        <version>2.22.0</version>
	    </dependency>
	    <dependency>
		    <groupId>com.google.guava</groupId>
		    <artifactId>guava</artifactId>
		    <version>31.1-jre</version>
		</dependency>

// 代码
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Paths;

import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;

@Service
public class GoogleCloudStorageService {

	private static final String CREDENTIALS_FILE_PATH = "auth*********.json";
    private static final String CLOUD_STORAGE_BUCKET = "*************";

    private final Storage storage;

    public GoogleCloudStorageService() throws IOException {
        this.storage = initializeStorage();
    }

    private Storage initializeStorage() throws IOException {
        ClassPathResource resource = new ClassPathResource(CREDENTIALS_FILE_PATH);
        try (InputStream inputStream = resource.getInputStream()) {
            GoogleCredentials credentials = GoogleCredentials.fromStream(inputStream)
                    .createScoped("https://www.googleapis.com/auth/devstorage.read_only");

            return StorageOptions.newBuilder()
                    .setCredentials(credentials)
                    .build()
                    .getService();
        }
    }

    public void downloadReport(String reportPath, String localFilePath) throws IOException {
        BlobId blobId = BlobId.of(CLOUD_STORAGE_BUCKET, "stats/store_performance/store_performance_com.miolive.music_202411_traffic_source.csv");
        Blob blob = storage.get(blobId);
        if (blob == null) {
            throw new IOException("Report not found: " + reportPath);
        }
        blob.downloadTo(Paths.get(localFilePath));
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值