Вот пример того, как указать токен загрузки при загрузке:
const UUID = require("uuid-v4");
const fbId = "<YOUR APP ID>";
const fbKeyFile = "./YOUR_AUTH_FIlE.json";
const gcs = require('@google-cloud/storage')({keyFilename: fbKeyFile});
const bucket = gcs.bucket(`${fbId}.appspot.com`);
var upload = (localFile, remoteFile) => {
let uuid = UUID();
return bucket.upload(localFile, {
destination: remoteFile,
uploadType: "media",
metadata: {
contentType: 'image/png',
metadata: {
firebaseStorageDownloadTokens: uuid
}
}
})
.then((data) => {
let file = data[0];
return Promise.resolve("https://firebasestorage.googleapis.com/v0/b/" + bucket.name + "/o/" + encodeURIComponent(file.name) + "?alt=media&token=" + uuid);
});
}
, а затем позвонить с помощью
upload(localPath, remotePath).then( downloadURL => {
console.log(downloadURL);
});
. Главное, что есть metadata
, вложенных в свойство опции metadata
. Установка firebaseStorageDownloadTokens
в значение uuid-v4 сообщит Cloud Storage, чтобы использовать это как общедоступный токен аутентификации.
Большое спасибо @martemorfosis
EDIT: Лучшее решение с ggplot2
версии 1.0.0 с помощью position_jitterdodge
. См. Ответ @Didzis Elferts. Обратите внимание, что dodge.width
управляет шириной уклонения, а jitter.width
управляет шириной дрожания.
Я не уверен, как код создавал график в pdf.
Но что-то вроде этого приближает вас к тому, что вам нужно?
Преобразуем tailindex
и memorypar
в числовые; добавьте их вместе; и результатом является координата x для слоя geom_jitter
. Вероятно, есть более эффективный способ сделать это. Кроме того, я хотел бы видеть, как уклонение geom_boxplot
и geom_jitter
и без дрожания приведет к созданию графика в pdf.
library(ggplot2)
dodge <- position_dodge(width = 0.9)
ex5$memorypar2 <- as.numeric(ex5$tailindex) +
3 * (as.numeric(as.character(ex5$memorypar)) - 0.2)
p <- ggplot(ex5,aes(x=tailindex , y=hillest)) +
scale_x_discrete() +
geom_jitter(aes(colour = memorypar, x = memorypar2),
position = position_jitter(width = .05), alpha = 0.5) +
geom_boxplot(aes(colour = memorypar), outlier.colour = NA, position = dodge) +
facet_wrap(~ process, nrow = 2)
p
[/g0]
В версии ggplot2
1.0.0
есть новая позиция с именем position_jitterdodge()
, созданная для такой ситуации. Это положение должно использоваться внутри geom_point()
, и внутри aes()
должно быть fill=
, чтобы показать, какой переменной уклониться от ваших данных. Для управления шириной аргумента уклонения dodge.width=
следует использовать.
ggplot(ex5,aes(x=tailindex ,y=hillest,color=memorypar,fill=memorypar)) +
facet_wrap(~process,nrow=2) +
geom_point(position=position_jitterdodge(dodge.width=0.9)) +
geom_boxplot(fill="white",outlier.colour = NA,
position = position_dodge(width=0.9))
[/g0]